1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int a[100100],n,q,k; int main() { // freopen("test9.in","r",stdin); // freopen("test9.out","w",stdout); cin>>n>>q; for(int i = 1;i <= n;i++){ cin>>a[i]; } int l,r,mid; for(int i = 1;i <= q;i++){ cin>>k; //找左右边界 l = 1;r = n; //左边界 while(l <= r){ mid = (l+r)>>1; if(k <= a[mid]) r = mid - 1; else l = mid + 1; } if(a[l] == k) cout<<l<<" "; else cout<<-1<<" "; l = 1;r = n; //右边界 while(l <= r){ mid = (l+r)>>1; if(k >= a[mid]) l = mid + 1; else r = mid - 1; } if(a[r] == k) cout<<r<<endl; else cout<<-1<<endl; } return 0; }
- 1
信息
- ID
- 996
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者