QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#18926. Сдвиг

Statistics

Рассмотрим таблицу размера $N \times N$, в клетках которой записаны попарно различные значения. Определим две операции, $\text{RowShift}(r)$ и $\text{ColShift}(c)$, следующим образом:

  • $\text{RowShift}(r)$: сдвинуть каждый элемент строки $r$ на одну клетку вправо, при этом самый правый элемент перемещается в самую левую клетку.
  • $\text{ColShift}(c)$: сдвинуть каждый элемент столбца $c$ на одну клетку вниз, при этом самый нижний элемент перемещается в самую верхнюю клетку.

Дана перестановка $(P_1, P_2, \dots, P_N)$ чисел $(1, 2, \dots, N)$. Последовательное выполнение следующих $2N$ операций по порядку называется одной процедурой:

  • $1$-я: $\text{RowShift}(1)$
  • $2$-я: $\text{ColShift}(P_1)$
  • $3$-я: $\text{RowShift}(2)$
  • $4$-я: $\text{ColShift}(P_2)$
  • $\vdots$
  • $2N - 1$-я: $\text{RowShift}(N)$
  • $2N$-я: $\text{ColShift}(P_N)$

Если повторить процедуру достаточное количество раз, таблица гарантированно вернётся в исходное состояние. Найдите минимальное необходимое количество повторений. Так как ответ может быть очень большим, выведите его по модулю $998\,244\,353$.

Входные данные

В первой строке содержится целое число $N$. ($1 \le N \le 200\,000$)

Во второй строке содержится $N$ целых чисел $P_1, P_2, \dots, P_N$, разделённых пробелами. $(P_1, P_2, \dots, P_N)$ является перестановкой $(1, 2, \dots, N)$.

Выходные данные

Выведите минимальное количество повторений процедуры по модулю $998\,244\,353$.

Примеры

Входные данные 1

2
1 2

Выходные данные 1

3

Входные данные 2

3
1 3 2

Выходные данные 2

3

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.