Зеник і марсіанська перестановка
Limits: 2 sec., 256 MiB
Зеник отримав марсіанську перестановку \(p\) із чисел від 1 до \(n\) у подарунок від Ілони.
Число \(k\) називається добрим, якщо Зеник може посортувати отриману перестановку, виконавши довільну кількість разів таку операцію: вибрати \(i\) та поміняти місцями \(p_i\) та \(p_{i + k}\).
Допоможіть Зенику визначити всі натуральні числа, які є добрими.
Input
У першому рядку задано ціле число \(n\) — розмір перестановки.
У другому рядку задано \(n\) цілих чисел \(p_i\) — перестановку.
Output
У першому рядку виведіть ціле число \(m\) — кількість добрих чисел.
У другому рядку виведіть \(m\) цілих чисел — добрі числа в порядку зростання.
Constraints
\(2 \le n \le 10^5\),
\(1 \le p_i \le n\),
існує такий індекс \(i\), що \(p_i \neq i\),
для 60% тестів виконується додаткове обмеження: \(n \le 2000\).
Samples
Input (stdin) | Output (stdout) |
---|---|
3 3 2 1 | 2 1 2 |
Input (stdin) | Output (stdout) |
---|---|
7 7 5 3 6 2 4 1 | 1 1 |
Submit a solution
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|