UVa 11991 - Easy Problem from Rujia Liu?

给定一个数组,查询第k个出现的v的位置

 

开 vector 。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <vector>
 4 using namespace std;
 5 vector<int> mp[1000005];
 6 int n,m,a,b;
 7 int main()
 8 {
 9     while(~scanf("%d%d",&n,&m))
10     {
11         
12         for(int i=1;i<=1000001;i++) mp[i].clear();
13         for(int i=1;i<=n;i++)
14         {
15             scanf("%d",&a);
16             mp[a].push_back(i);
17         }
18         for(int i=1;i<=m;i++)
19         {
20             scanf("%d%d",&a,&b);
21             if(mp[b].size()>=a)
22             {
23                 cout<<mp[b][a-1]<<endl;
24             }
25             else puts("0");
26         }
27     }
28 }

 

posted @ 2016-07-17 11:23  nicetomeetu  阅读(148)  评论(0编辑  收藏  举报