UVA-11991 map的应用

https://vjudge.net/problem/UVA-11991

题意

给出一个包含n个整数的数组,每次询问两个整数k和v,输出从左到右第k个v的下标(从1到n)。

思路

巧妙运用map

注意下标

#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
map<int ,vector<int> >a;
int main(){
    int n,m;
    while(cin>>n>>m){
            a.clear();
        for(int i=1;i<=n;i++){
            int d;
            cin>>d;
            a[d].push_back(i);
        }
        while(m--){
            int p,q;
            cin>>p>>q;
            if(a[q].size()<p)
                cout<<0<<endl;
            else
                cout<<a[q][p-1]<<endl;
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40038776/article/details/81384440