Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int n;
- vector<pair<int,int>> co;
- map<int,int> visited;
- int find(int i){
- int f=0,l=n-1;
- while(f<=l){
- int m=(f+l)/2;
- if(co[m].first==i){
- while(co[m].first==i&&m>=0){m--;}
- return co[m+1].second;
- }
- if(co[m].first>i){l=m-1;}
- else{f=m+1;}
- }
- return -1;
- }
- int main(){
- scanf("%d",&n);
- for(int i=1;i<=n;i++){
- int a; scanf("%d",&a);
- co.push_back({a,i});
- }
- sort(co.begin(),co.end());
- int q; scanf("%d",&q);
- for(int i=0;i<q;i++){
- int a,ans;
- scanf("%d",&a);
- if(visited[a]!=0){ans=visited[a];}
- else{ans=find(a); visited[a]=ans;}
- if(ans!=-1){
- printf("%d\n",ans);
- }
- else{printf("Not found\n");}
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement