uva 11991

来源:互联网 发布:小米6怎么样知乎 编辑:程序博客网 时间:2024/04/25 22:01

题意:有n个整数的数组,询问k和v,表示从左到右第k个v的下标(从1到n)。

题解:输出查询结果,不存在输出0。

#include <stdio.h>#include <vector>#include <map>using namespace std;const int N = 1000006;map<int, vector<int> > mp;int m, n, a, b;int main() {while (scanf("%d%d", &n, &m) == 2) {mp.clear();for (int i = 1; i <= n; i++) {scanf("%d", &a);if (!mp.count(a))mp[a] = vector<int>();mp[a].push_back(i);}for (int i = 0; i < m; i++) {scanf("%d%d", &a, &b);if (!mp.count(b) || mp[b].size() < a)printf("0\n");elseprintf("%d\n", mp[b][a - 1]);}}return 0;}

0 0