UVA11991 Easy Problem from Rujia Liu?

思路

使用map套vector即可解决

答案就是M[v][k-1]

代码

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#include <map>
using namespace std;
map<int,vector<int> > Vec;
int n,m;
int main(){
    while(scanf("%d %d",&n,&m)==2){
        Vec.clear();
        int x;
        for(int i=1;i<=n;i++){
            scanf("%d",&x);
            Vec[x].push_back(i);
        }
        for(int i=1;i<=m;i++){
            int v,k;
            scanf("%d %d",&k,&v);
            if(Vec[v].size()>=k)
                printf("%d\n",Vec[v][k-1]);
            else
                printf("0\n");
        }
    }    
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/dreagonm/p/10681251.html