题意:给定N个数与Q个询问,询问第k个等于a的数的下标
题解:用map存数,每次将数放进去,每个数的个数不定,用vector即可。
AC代码:
#include <iostream>
#include <cstdio>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
const int maxn = 1000005;
#define _for(i,a,b) for(int i=a;i<=b;i++)
map<int,vector<int> > Q;
int n,m;
int main(int argc, char const *argv[])
{
while(cin>>n>>m)
{
Q.clear();
_for(i,1,n)
{
int x;
cin>>x;
Q[x].push_back(i);
}
_for(i,1,m)
{
int x,y;
cin>>x>>y;
int k = Q[y].size();
if(k<x)cout<<0<<endl;
else cout<<Q[y][x-1]<<endl;
}
}
return 0;
}