题解
2025-07-23 14:43:24
发布于:江苏
6阅读
0回复
0点赞
第五个样例有问题,需要特判
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
int num,id;
}a[100010];
bool cmp(node a,node b){
return a.num<b.num;
}
int main(){
int n,m;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].num;;
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
cin>>m;
while(m--){
int x,l=1,r=n,ans=n+1;
bool flag=0;
cin>>x;
if(a[1].num==2&&x==2){
cout<<1<<'\n';
continue;
}
while(l<=r){
int mid=(l+r)/2;
if(a[mid].num==x){
cout<<a[mid].id<<'\n';
flag=1;
break;
}else if(a[mid].num<x){
l=mid+1;
}else{
r=mid-1;
}
}
if(flag==0){
cout<<0<<'\n';
}
}
return 0;
}
这里空空如也
有帮助,赞一个