14029: Організація пошти - Email Filing - USACO22FebSilver
Фермер Джон реорганізує свою електронну пошту. Його екран виглядає як вертикальний список папок з лівого боку екрану та і вертикальний список листів з правого боку екрану. Є \(M\) папок, пронумерованих \(1 \ldots M\) (\(1 \le M \le 10^4)\). Його пошта зараз містить \(N\) листів, пронумерованих \(1\ldots N\) (\(1 \le N \le 10^5\)); \(і\)-ий лист необхідно перемістити до папки \(f_i\) (\(1\le f_i\le M\)).
Екран ФД невеликий, тому він може бачити одночасно \(K\) (\(1\le K\le \min(N,M)\)) папок та \(K\) листів одночасно. Спочатку його екран показує папки \(1 \ldots K\) зліва та листи \(1 \ldots K\) праворуч. Для того щоб побачити інші папки та листи, він має скролити відповідні списки.
Наприклад, якщо він проскролить вниз на одну позицію у списку папок, він побачить папки \(2 \ldots K+1\), а якщо проскролить ще на одну позицію вниз, він побачить папки \(3 \ldots K+2\). Коли ФД переносить лист в папку воно зникає зі списку листів, і всі нижні листи піднімаються на одну позицію вгору. Наприклад, нехай на екрані відображені листи \(1, 2, 3, 4, 5\) та ФД переносить листа 3 у відповідну папку, тоді видима частина списку листів стане такою: \(1, 2, 4, 5, 6\). ФД може переносити листи лише у призначені їм папки.
На жаль, колесо скролінгу на мишці ФД зламалося, і він може скролити тільки вниз і не може скролити нагору. Єдина подоба скролінгу вгору якщо він бачить останні \(K\) листів зі свого списку і переносить до папки один з них. У цьому випадку після перенесення список знову покаже останні \(K\) ще не рознесених листів, що відповідає скролінгу вгору одного листа. Якщо залишилося менше \(K\) листів, вони відображаються усі.
Допоможіть ФД визначити, чи може він рознести всі свої листи по папках.
Формат вхідних даних
Перший рядок введення містить \(T\) (\(1 \le T \le 10\)), кількість підвипадків у тесті, кожен із яких має вирішуватися незалежно. Далі йдуть \(T\) підвипадків. Для кожного випадку перший рядок містить \(M\), \(N\), \(K\). Другий рядок містить \(f_1 \ldots f_N\).
Гарантується, що сума \(M\) за всіма випадками не перевищить \(10^4\), а сума \(N\) за всіма випадками не перевищить \(10^5\).
Формат вихідних даних
Виведіть \(T\) рядків, кожен містить YES або NO, вказуючи чи може ФД рознести листи для кожного з \(T\) підвипадків.
Приклад вхідних даних
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 сума \(M\) за всіма випадками не перевищить \(10^3\).
- У тестах 11-12 немає додаткових обмежень.
Автор: Brian Dean
Коментарі