据说unordered_map跑得快,就试了试。
可能数据比较水,没展示出来
#include <bits/stdc++.h>
#define rep(i, a, b) for (int i = a; i <= b; ++i)
using namespace std;
const int nmax = 1e6 + 10;
const int INF = 0x3f3f3f3f;
typedef long long ll;
typedef double db;
unordered_map<int, vector<int> > mp;
int n, m;
int main() {
while (scanf("%d %d", &n, &m) != EOF) {
mp.clear();
int temp;
rep(i, 1, n) {
scanf("%d", &temp);
mp[temp].push_back(i);
}
int num, ord;
rep(i, 1, m) {
scanf("%d %d", &ord, &num);
if (mp.count(num) == 0 || mp[num].size() < ord) printf("0\n");
else printf("%d\n", mp[num][ord - 1]);
}
}
return 0;
}