#L8188. [USACO22FEB] Email Filing S

    ID: 1098 传统题 文件IO:prob3 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>模拟贪心线性数据结构USACO2022

[USACO22FEB] Email Filing S

P8188 [USACO22FEB] Email Filing S

题目描述

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

FJ 的屏幕很小,因此他一次只能查看 KK 个文件夹和 KK 封邮件(1Kmin(N,M)1 \leq K \leq \min(N, M))。初始时,他的屏幕显示左侧的文件夹 1K1 \ldots K 和右侧的邮件 1K1 \ldots K。为了访问其他文件夹和邮件,他需要滚动这些列表。例如,如果他在文件夹列表中向下滚动一个位置,屏幕将显示文件夹 2K+12 \ldots K+1,再向下滚动一个位置则显示文件夹 3K+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 判断是否能够归档所有邮件。

输入格式

输入的第一行包含 TT1T101 \leq T \leq 10),表示输入中的子用例数量,所有子用例都必须正确解决才能解决整个输入用例。接下来的 TT 行是每个子用例的输入。对于每个子用例,第一行包含 MMNNKK。第二行包含 f1fNf_1 \cdots f_N

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

输出格式

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

输入输出样例 1

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 中,没有额外限制。