思路
使用map套vector即可解决
答案就是M[v][k-1]
代码
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#include <map>
using namespace std;
map<int,vector<int> > Vec;
int n,m;
int main(){
while(scanf("%d %d",&n,&m)==2){
Vec.clear();
int x;
for(int i=1;i<=n;i++){
scanf("%d",&x);
Vec[x].push_back(i);
}
for(int i=1;i<=m;i++){
int v,k;
scanf("%d %d",&k,&v);
if(Vec[v].size()>=k)
printf("%d\n",Vec[v][k-1]);
else
printf("0\n");
}
}
return 0;
}