Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
18814 hhz123 【二分】数的范围 C++ 通过 195 MS 376 KB 633 2023-03-05 11:06:52

Tests(10/10):


#include <bits/stdc++.h> using namespace std; const int N=1e5+10; int a[N]; int bs1(int l,int r,int k){ while(l<r){ int mid=l+r>>1; if(a[mid]>=k)r=mid; else l=mid+1; } return l; } int bs2(int l,int r,int k){ while(l<r){ int mid=l+r+1>>1; if(a[mid]<=k)l=mid; else r=mid-1; } return l; } int main(){ int n,q,k; cin>>n>>q; for(int i=0;i<n;i++){ cin>>a[i]; } while(q--){ cin>>k; bool flag=false; for(int i=0;i<n;i++){ if(a[i]==k)flag=true; } if(flag){ cout<<bs1(0,n-1,k)<<' '<<bs2(0,n-1,k)<<"\n"; }else{ cout<<"-1"<<' '<<"-1"<<'\n'; } } return 0; }


测评信息: