#P8188. [USACO22FEB] Email Filing S

    ID: 9263 远端评测题 2000ms 256MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>模拟贪心线性数据结构USACO2022

[USACO22FEB] Email Filing S

题目描述

Farmer John 在整理他的收件箱时落后了。他的屏幕布局如下:屏幕左侧是文件夹的垂直列表,右侧是邮件的垂直列表。总共有 MM 个文件夹,编号为 1…M1 \ldots M(1≤M≤1041 \leq M \leq 10^4)。他的收件箱目前包含 NN 封邮件,编号为 1…N1 \ldots N(1≤N≤1051 \leq N \leq 10^5);第 ii 封邮件需要归档到文件夹 fif_i(1≤fi≤M1 \leq f_i \leq M)。

FJ 的屏幕很小,因此他一次只能查看 KK 个文件夹和 KK 封邮件(1≤K≤min⁡(N,M)1 \leq K \leq \min(N, M))。初始时,他的屏幕显示左侧的文件夹 1…K1 \ldots K 和右侧的邮件 1…K1 \ldots K。为了访问其他文件夹和邮件,他需要滚动这些列表。例如,如果他在文件夹列表中向下滚动一个位置,屏幕将显示文件夹 2…K+12 \ldots K+1,再向下滚动一个位置则显示文件夹 3…K+23 \ldots K+2。当 FJ 将一封邮件拖入文件夹时,该邮件会从邮件列表中消失,其后的邮件会向前移动一个位置。例如,如果当前显示的邮件是 1,2,3,4,51, 2, 3, 4, 5,而 FJ 将邮件 33 拖入其对应的文件夹,邮件列表将显示 1,2,4,5,61, 2, 4, 5, 6。FJ 只能将邮件拖入其需要归档的文件夹。

不幸的是,FJ 的鼠标滚轮坏了,他只能向下滚动,不能向上滚动。唯一能实现类似向上滚动的效果是,当他查看邮件列表的最后 KK 封邮件时,如果他归档了其中一封邮件,邮件列表将再次显示尚未归档的最后 KK 封邮件,从而将最上面的邮件向上滚动一个位置。如果剩余的邮件少于 KK 封,则显示所有剩余的邮件。

请帮助 FJ 判断是否能够归档所有邮件。

输入格式

输入的第一行包含 TT(1≤T≤101 \leq T \leq 10),表示输入中的子用例数量,所有子用例都必须正确解决才能解决整个输入用例。接下来的 TT 行是每个子用例的输入。对于每个子用例,第一行包含 MM、NN 和 KK。第二行包含 f1⋯fNf_1 \cdots f_N。

保证所有子用例的 MM 之和不超过 10410^4,所有子用例的 NN 之和不超过 10510^5。

输出格式

输出 TT 行,每行包含 YES 或 NO,表示 FJ 是否能够成功归档所有邮件。

6
5 5 1
1 2 3 4 5
5 5 1
1 2 3 5 4
5 5 1
1 2 4 5 3
5 5 2
1 2 4 5 3
3 10 2
1 3 2 1 3 2 1 3 2 1
3 10 1
1 3 2 1 3 2 1 3 2 1
YES
YES
NO
YES
YES
NO

提示

  • 在输入 2-10 中,所有子用例的 MM 之和不超过 10310^3。
  • 在输入 11-12 中,没有额外限制。