14135: Поверни і посунь-Rotate and Shift -USACO2022OpenBronze


Відправити розв'язок

Бали: 100 (partial)
Time limit: 4.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
Brain****, C, C++, Java, Pascal, Python, v8js

Щоб відсвяткувати початок весни, \(N\) корів фермера Джона (\(1 \leq N \leq 2 \cdot 10^5\)) придумали новий інтригуючий танець, в якому вони встають у коло і перебудовуються передбачуваним способом.

Зокрема, по колу є \(N\) позицій, пронумеровані послідовно від \(0\) до \(N-1\), причому позиція \(0\) слідує за позицією \(N-1\). На кожній позиції знаходиться корова. Корови також послідовно нумеруються від \(0\) до \(N-1\). Спочатку корова \(i\) знаходиться у позиції \(i\). Вам повідомляють набір із \(K\) позицій \(0=A_1<A_2< \ldots< A_K<N\), які є «активними», що означає, що корови в цих позиціях рухатимуться наступними (\(1 \leq K \leq N\)).

Що хвилини танцю відбуваються дві речі. По-перше, корови в активних позиціях змінюються: корова в позиції \(A_1\) переміщується в позицію \(A_2\), корова в позиції \(A_2\) переміщується в позицію \(A_3\) і так далі, з коровою в позиції \(A_K\) перехід на позицію \( A_1\). Всі ці \(K\) переміщення відбуваються одночасно, тому після завершення обертання всі активні позиції, як і раніше, містять одну корову. Далі зміщуються самі активні позиції: \(A_1\) стає \(A_1+1\), \(A_2\) стає \(A_2+1\) і так далі (якщо \(A_i = N-1\) для деякої активної позиції, то \(A_i\) повертається до \(0\)).

Розрахуйте порядок корів після \(T\) хвилин танцю (\(1\le T\le 10^9\)).

Формат вхідних даних

Перший рядок містить три цілих числа \(N\), \(K\) і \(T\).

Другий рядок містить \(K\) цілих чисел, що представляють вихідний набір активних позицій. \(A_1,A_2, \ldots A_K\). Нагадаємо, що \(A_1 = 0\) і що вони дані в порядку зростання.

Формат вихідних даних

Виведіть порядок корів через \(T\) хвилин, починаючи з корови позиції \(0\), розділених пробілами.

Приклад вхідних даних

5 3 4
0 2 3

Приклад вихідних даних

1 2 3 4 0

Для наведеного вище прикладу замовлення корів і \(A\) для перших чотирьох тимчасові рамки:

Початковий, T = 0: порядок = [0 1 2 3 4], A = [0 2 3]
T = 1: порядок = [3 1 0 2 4]
Т = 1: А = [1 3 4]
T = 2: порядок = [3 4 0 1 2]
Т = 2: А = [2 4 0]
T = 3: порядок = [2 4 3 1 0]
Т = 3: А = [3 0 1]
T = 4: порядок = [1 2 3 4 0]

ОЦІНКА:

  • Тести 2–7: \(N \leq 1000, T \leq 10000\)</li>
  • Тести 8–13: додаткові обмеження відсутні.

Коментарі

Ще немає коментарів.