https://vjudge.net/problem/UVA-11991
题意
给出一个包含n个整数的数组,每次询问两个整数k和v,输出从左到右第k个v的下标(从1到n)。
思路
巧妙运用map
注意下标
#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
map<int ,vector<int> >a;
int main(){
int n,m;
while(cin>>n>>m){
a.clear();
for(int i=1;i<=n;i++){
int d;
cin>>d;
a[d].push_back(i);
}
while(m--){
int p,q;
cin>>p>>q;
if(a[q].size()<p)
cout<<0<<endl;
else
cout<<a[q][p-1]<<endl;
}
}
return 0;
}