蒟蒻复习二分 结果发现代码炸了 求大佬解答
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,f;
struct node{
int id;
int pl;
}a[100005],ans[100005];
int cmp(node x,node y){
return x.id<y.id;
}
int cmp1(node x,node y){
return x.pl<y.pl;
}
void check(int x,int y){
int l=1,r=n;
while(l<r){
int mid=l+(l+r)/2;
if(a[mid].id>=x) r=mid;
else l=mid+1;
}
if(a[l].id==x){
ans[y].id=a[l].id;
ans[y].pl=a[l].pl;
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i].id;
a[i].pl=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=m;i++){
cin>>f;
check(f,i);
}
sort(ans+1,ans+m+1,cmp1);
for(int i=1;i<=m;i++) cout<<ans[i].id<<' ';
return 0;
}