题目说明
数据范围
样例
4.代码
很简单的二分,直接上代码:
#include <bits/stdc++.h> using namespace std; const int N=100010,M=10010; int arr[N],flag[M]; int main() { int n,q; cin>>n>>q; for(int i=0;i<n;i++) { scanf("%d",&arr[i]); flag[arr[i]]++; } while(q--) { int m; scanf("%d",&m); int beg=0,ends=0,l=0,r=n-1; while(l<r) { int mid=(l+r)/2; if(arr[mid]<m) l=mid+1; else r=mid; } if(arr[l]==m) beg=l; else { printf("-1 -1\n"); continue; } ends=beg+flag[m]-1; printf("%d %d\n",beg,ends); } return 0; }