题目传送门
代码:
#include <bits/stdc++.h>
using namespace std;
long long a[1000010];
int n,m;
int lookup(int q){
int x = 1,y = n + 1;
while(x <= y){
int ans = (y + x) / 2;
if(a[ans] == q) return ans;
else if(a[ans] > q) y = ans - 1;
else x = ans + 1;
}
return -1;
}
int main()
{
int q;
scanf("%d%d",&n,&m);
for(int i = 1;i <= n;i ++) scanf("%lld",&a[i]);
sort(a + 1, a + n + 1);
for(int i = 1;i <= m;i ++){
scanf("%d",&q);
printf("%d ",lookup(q));
}
return 0;
}