问题 4767 --OY的QQ好友

4767: OY的QQ好友★★

时间限制: 2 Sec  内存限制: 2526 MB
提交: 103  解决: 37
[提交][状态][命题人:]

题目描述

OY是一只熊猫,他喜欢通过QQ与其他熊猫联系。他有 n 个好友,他与第 i 个好友的关系用一个唯一的整数 t[i] 来描述。这个值越大,友谊越好。没有两个好友具有相同的值 t[i]。

一天早晨,OY刚刚醒来并登录。他所有的好友都还在睡觉,因此没有一个人在线。其中一些(也许全部)将在接下来的几个小时内出现在网上,每次出现一个。

QQ会显示在线的好友。屏幕上最多可以显示 k 个好友。如果在线的好友超过 k 个,则系统只显示其中 k 个最好的,即那些 ti 最大的。

您的任务是处理两种类型的操作:
  "1 id" — 第 id 个好友上线了。可以保证他之前不在线。
  "2 id" — 回答第 id 个好友是否被系统显示。在单独的行中输出“YES”或“NO”。

你能帮助OY回答所有第二类问题吗?

输入

第一行包含三个整数n、k、q(1 ≤ n, q ≤ 150 000, 1 ≤ k ≤ min(6, n)),分别表示总好友数、最大显示的好友数和操作数。

第二行包含 n 个整数 t[1], t[2], ..., t[n] (1 ≤ ti ≤ 10^9),其中 ti 描述了 OY 与第 i 个好友的关系有多好。

接下来 q 行中的第 i 行包含两个整数 type[i] 和 id[i] (1 ≤ type[i] ≤ 2, 1 ≤ id[i] ≤ n) ,表示第 i 个操作。 如果 type[i] = 1 则表示第 id[i] 个好友上线了。 如果 type[i] = 2 那么你应该回答第 id[i] 个好友是否被系统显示。

保证不会有两个第一种类型的操作具有相同的 id[i],因为一个好友不能在线两次。 此外,保证至少有一个操作属于第二种类型(type[i] = 2),因此输出不会为空。

输出

对于每个第二种类型的操作,打印一行答案。
如果给定的好友会被显示,则输出“YES”(不带引号),否则输出“NO”(不带引号)。

样例输入
Copy
4 2 8
300 950 500 200
1 3
2 4
2 3
1 1
1 2
2 1
2 2
2 3
样例输出
Copy
NO
YES
NO
YES
YES

提示

在样例中,OY有 4 个好友,他们最初都在睡觉。 起初系统不会显示任何人,因为没有人在线。 有以下 8 个操作:
1. "1 3"——好友 3 上线了。
2. "2 4"——我们应该检查好友 4 是否显示。 他甚至都不在线,因此我们输出“NO”。
3. "2 3"——我们应该检查好友 3 是否显示。 现在他是唯一在线的好友,系统显示他。 我们应该输出“YES”。
4. "1 1"——好友 1 在线。 系统现在同时显示好友 1 和好友 3。
5. "1 2"——好友 2 上线。 现在有 3 个好友在线,但我们得到了 k = 2,所以只能显示两个好友。 OY与好友 1 的关系比与其他两个在线好友的关系更差 (t[1] < t[2], t[3]),因此不会显示好友 1 。
6. "2 1"——输出“NO”。
7. "2 2"——输出“YES”。
8. "2 3"——输出“NO”。

来源

[提交][状态]