求救P1918
(难不成它是依托答辩了)
#include<bits/stdc++.h>
using namespace std;
struct node
{
long long after_sort,before_sort;
}target[100000];
bool cmp(node a,node b)
{
return a.after_sort<b.after_sort;
}
int main()
{
long long n,i,j,q,m;
cin>>n;
for(i=1;i<=n;i++)
cin>>target[i].after_sort,target[i].before_sort=i;
sort(target+1,target+1+n,cmp);
cin>>q;
for(i=1;i<=q;i++)
{
cin>>m;
long long l=1,r=n,ans;
while(l<=r)
{
long long mid=(l+r)/2;
if(target[mid].after_sort<=m)
{
l=mid+1;
ans=target[i].before_sort;
}
else
r=mid-1;
}
if(target[ans].after_sort ==m)
cout<<ans<<endl;
else
cout<<0<<endl;
}
return 0;
}