Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
23766 U•ェ•*✔ 【二分】查找最接近的元素 C++ 通过 44 MS 372 KB 505 2023-07-16 17:15:31

Tests(20/20):


#include"bits/stdc++.h" using namespace std; int a[100005]; int n,m,x; int s1(int x){ int l=1,r=n; while(l<r){ int mid=l+r>>1; if(a[mid]>=x)r=mid; else l=mid+1; } return a[l]; } int s2(int x){ int l=1,r=n; while(l<r){ int mid=l+r+1>>1; if(a[mid]<=x)l=mid; else r=mid-1; } return a[l]; } int main(){ cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; cin>>m; while(m--){ cin>>x; if(abs(s1(x)-x)>abs(s2(x)-x)) cout<<s2(x)<<'\n'; else cout<<s1(x)<<'\n'; } }


测评信息: