编程题
### 问题描述 小齐的屏幕上有一个文件夹列表和一个邮件列表。文件夹列表垂直排列在屏幕的左侧,邮件列表垂直排列在屏幕的右侧。屏幕上总共有 $M$ 个文件夹,编号为 $1\ldots M$。小齐的收件箱中有 $N$ 封邮件,编号为 $1\ldots N$,第 $i$ 封邮件需要整理到文件夹 $f_i$ 中。 由于小齐的屏幕较小,一次只能查看 $K$ 个文件夹和 $K$ 封邮件($1 \leq K \leq \min(N, M)$)。初始时,屏幕上显示的是文件夹列表的前 $K$ 个文件夹和邮件列表的前 $K$ 封邮件。为了查看其他文件夹和邮件,小齐需要在相应的列表中滚动。如果她在邮件列表的末尾选择一个邮件进行整理,那么邮件列表将再次显示未整理的最后 $K$ 封邮件,这等效于将顶部的邮件向上滚动一封。如果剩余邮件不足 $K$ 封,那么所有未整理的邮件都将显示出来。 请帮助小齐确定是否可能将所有邮件整理完毕。 ### 输入格式 第一行包含一个整数 $T$,表示子问题的数量,所有子问题必须被正确解决才能解决整个问题。 接下来的 $T$ 行,每行包含三个整数 $M$、$N$ 和 $K$,表示文件夹总数,邮件总数以及一次显示的文件夹和邮件数量。 每个子问题的下一行包含 $N$ 个整数 $f_1, f_2, \ldots, f_N$,表示每封邮件应该整理到的文件夹。 ### 输出格式 输出 $T$ 行,每行包含一个单词,为对应子问题的解,如果可能将所有邮件整理完毕,则为 $YES$,否则为 $NO$。 ### 样例输入 ``` 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 ``` ### 评测数据规模 $1 \leq M \leq 10^3$。
查看答案
赣ICP备20007335号-2