大意略。
原来map可以插vector额。
#include <cstdio> #include <vector> #include <map> using namespace std; map<int, vector<int> > a; int n, m; int k, v; void init() { a.clear(); } int main() { while(~scanf("%d%d", &n, &m)) { init(); for(int i = 0; i < n; i++) { scanf("%d", &v); if(!a.count(v)) a[v] = vector<int> (); a[v].push_back(i+1); } while(m--) { scanf("%d%d", &k, &v); if(!a.count(v) || a[v].size() < k) printf("0\n"); else printf("%d\n", a[v][k-1]); } } return 0; }