uva 11991 查询中容器的运用

题目大意:一个n个整数的数组,m条查询指令。(1<=n,m<=100 000)每次询问第k个整数v的下标值,若不存在输出0。

 

#include<iostream>
#include<map>
#include<vector>
#include<cstdio>
using namespace std;

map<int,vector<int> > a;

int main()
{
    int n,m,i,p,k,v;
    while(scanf("%d %d",&n,&m) == 2)
    {
        a.clear();
        for(i=0;i<n;i++)
        {
            scanf("%d",&p);
            if(!a.count(p)) a[p]=vector<int> ();
            a[p].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;
}

 

 

 

posted on 2014-01-27 11:07  雄..  阅读(153)  评论(0编辑  收藏  举报

导航