2.0,样例过了,提交四个WA还有一个TLE。
我真的是栓Q。
废话少说,长话短说,请看代码,写的很烂。
#include<bits/stdc++.h>
using namespace std;
int a[1000005],m,n,q,ans;
int f(int q){
int l = 1,r = n,flag = 0,mid;
while(l<r){
mid = (l+r)/2;
if(a[mid] == q){
flag = 1;
break;
}
else if(a[mid] < q) l = mid+1;
else r = mid-1;
}
int i = mid;
if(flag){
while(true){
if(a[i-1] != a[i]) return i;
else i--;
}
}else return -1;
}
int main(){
scanf("%d %d",&n,&m);
for(int i = 1; i <= n; i++){
scanf("%d",&a[i]);
}
for(int i = 1; i <= m; i++){
scanf("%d",&q);
ans = f(q);
cout << ans << " ";
}
return 0;
}