```cpp
#include<bits/stdc++.h>
using namespace std;
long long n,m,k;
struct node{//结构体,数本身和序号
int x,y;
}a[100001];
bool cmp(node x,node y){
return x.x<y.x;
}
int main() {
cin>>n;
for(int i=1; i<=n; i++) {
cin>>a[i].x;
a[i].y=i;
}
sort(a+1,a+n+1,cmp);//排序
cin>>m;
while(m--) {
int f=0;//判断
long long l=1,r=n,mid;
cin>>k;
while(l<=r) {//二分
mid=(l+r)/2;
if(a[mid].x==k) {//找到答案
cout<<a[mid].y<<endl;//输出
f=1;
break;
}
if(a[mid].x<k) {//小了
l=mid+1;//左端点右移
} else if(a[mid].x>k) {//大了
r=mid-1;//右端点左移
}
}
if(f==0) {//没有答案
cout<<0<<endl;
}
}
return 0;
}
```
by xiaoyunhao @ 2024-04-11 17:18:56
@[fangmiaoxin](/user/1141719)
by xiaoyunhao @ 2024-04-11 17:20:45