这个题目的意思是输入n个数,m组询问,每组询问包含两个整数k,v,意思是询问整数v第k次出现的位置。
#include <cstdio> #include <map> #include <vector> using namespace std; int main() { map<int,vector<int> > mm; //我们这里使用了STL里的map和vector int n, m, k, v, i, a; while (scanf("%d%d",&n,&m) != EOF) { mm.clear(); for (i = 1;i <= n;i++) { scanf("%d",&a); mm[a].push_back(i); } while (m--) { scanf("%d%d",&k,&v); if(mm[v].size() < k) printf("0\n"); else printf("%d\n",mm[v][k-1]); } } return 0; }
代码很好懂,主要是map和vector的用法。