Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
23802 yihang 【二分】查找最接近的元素 C++ 编译错误 0 MS 0 KB 485 2023-07-16 18:02:36

Tests(0/0):


#include"bits/stdc++.h" using namespace std; int n,s[100000],m,x; int sd1(int x){ int l=1,r=n-1; while(l<r){ int mid=l+r>>1; if(s[mid]>=x)r=mid; else l=mid+1;} return s[l];} int sd2(int x){ int l=1,r=n-1; while(l<r){ int mid=l+r+1>>1; if(s[mid]<=x)l=mid; else r=mid-1;} return s[l];} int main(){ cin>>n; for(int i=1;i<=n;i++)cin>>s[i]; cin>>m; while(m--){ cin>>x; if(abs(sd1(x)-x)>abs(sd2(x)-x))cout<<bs2(x)<<endl; else cout<<bs1(x)<<endl; } }


测评信息: