这道题怎么又紫了!!!!!!!!!!
或许因为本人
过丑
#include<bits/stdc++.h>
using namespace std;
int a,b,c[100005];
struct sss{
int name;
int xb;
}d[10005];
void zcy(int l,int r,int x){
if(l>r)return;
int lr1 = l+(r-l)/2;
if(c[lr1] == d[x].name){
d[x].xb = lr1;
zcy(l,lr1-1,x);
return;
}
else if(c[lr1]>d[x].name)zcy(l,lr1-1,x);
else zcy(lr1+1,r,x);
}
int main(){
scanf("%d%d",&a,&b);
for(int i = 1;i<=a;i++){
scanf("%d",&c[i]);
}
for(int i = 1;i<=b;i++){
scanf("%d",&d[i].name);
d[i].xb = -1;
}bool isok = true;
for(int i = 1;i<=b;i++){
isok = true;
for(int j = 1;j < i;j++){
if(d[i].name == d[j].name){
d[i].xb = d[j].xb;
isok == false;
break;
}
}
if(isok)zcy(1,a,i);
}
for(int i = 1;i<=b;i++){
printf("%d ",d[i].xb);
}
}