Codeforces Round 639 (Div. 1) |
---|
Закончено |
Отель Гильберта это очень необычный отель, потому что количество комнат в нем бесконечно! Для каждого целого числа существует ровно одна комната с таким номером, включая ноль и отрицательные числа. Не менее странно то, что сейчас отель полностью заполнен, что означает, что в каждой комнате находится ровно один гость. Менеджер отеля, сам Давид Гильберт, решил переместить гостей, потому что у него есть предположение, что за счет этого образуются свободные места.
Для любого целого числа $$$k$$$ и положительного целого числа $$$n$$$ обозначим за $$$k\bmod n$$$ остаток при делении числа $$$k$$$ на число $$$n$$$. Более формально, $$$r=k\bmod n$$$ это наименьшее неотрицательное целое число такое, что $$$k-r$$$ делится на $$$n$$$. Всегда выполнено, что $$$0\le k\bmod n\le n-1$$$. Например, $$$100\bmod 12=4$$$ и $$$(-1337)\bmod 3=1$$$.
Процесс перемещения гостей выглядит следующим образом: есть массив, состоящий из $$$n$$$ целых чисел $$$a_0,a_1,\ldots,a_{n-1}$$$. Тогда для всех целых чисел $$$k$$$ гость из комнаты с номером $$$k$$$ перемещается в комнату с номером $$$k+a_{k\bmod n}$$$.
Определите, верно ли, что после этого процесса перемещения в каждой комнате по-прежнему находится ровно один гость. Это означает, что нет пустых комнат и комнат, в которых больше одного гостя.
Каждый тест состоит из нескольких тестовых случаев. Первая строка содержит единственное целое число $$$t$$$ ($$$1\le t\le 10^4$$$) — количество тестовых случаев. Следующие $$$2t$$$ строк содержат описания тестовых случаев.
В первой строке описания каждого тестового случая находится единственное целое число $$$n$$$ ($$$1\le n\le 2\cdot 10^5$$$) — длина массива.
Во второй строке описания каждого тестового случая находятся $$$n$$$ целых чисел $$$a_0,a_1,\ldots,a_{n-1}$$$ ($$$-10^9\le a_i\le 10^9$$$).
Гарантируется, что сумма $$$n$$$ по всем тестовым случаям не превосходит $$$2\cdot 10^5$$$.
Для каждого тестового случая выведите единственную строку, содержащую «YES», если в каждой комнате после перемещения находится ровно один гость, и «NO» иначе. Вы можете выводить каждый символ в любом регистре.
6 1 14 2 1 -1 4 5 5 5 1 3 3 2 1 2 0 1 5 -239 -2 -100 -3 -11
YES YES YES NO NO YES
В первом тестовом случае номер комнаты каждого гостя увеличился на $$$14$$$, поэтому по-прежнему в каждой комнате находится ровно один гость.
Во втором тестовом случае гости в комнатах с четными номерами перемещаются в комнату с номером, на $$$1$$$ большим исходного; гости в комнатах с нечетными номерами перемещаются в комнату с номером, на $$$1$$$ меньшим исходного. Можно показать, что по-прежнему в каждой комнате находится ровно один гость.
В третьем тестовом случае каждый четвертый гость перемещается в комнату с номером, на $$$1$$$ большим исходного, а остальные гости перемещаются в комнату с номером, на $$$5$$$ большим. Можно показать, что по-прежнему в каждой комнате находится ровно один гость.
В четвертом тестовом случае гости, исходно находящиеся в комнатах $$$0$$$ и $$$1$$$, перемещаются в комнату с номером $$$3$$$.
В пятом тестовом случае гости, находящиеся в комнатах $$$1$$$ и $$$2$$$, перемещаются в комнату с номером $$$2$$$.
Название |
---|