Зеник і марсіанська перестановка
Обмеження: 2 сек., 256 МіБ
Зеник отримав марсіанську перестановку \(p\) із чисел від 1 до \(n\) у подарунок від Ілони.
Число \(k\) називається добрим, якщо Зеник може посортувати отриману перестановку, виконавши довільну кількість разів таку операцію: вибрати \(i\) та поміняти місцями \(p_i\) та \(p_{i + k}\).
Допоможіть Зенику визначити всі натуральні числа, які є добрими.
Вхідні дані
У першому рядку задано ціле число \(n\) — розмір перестановки.
У другому рядку задано \(n\) цілих чисел \(p_i\) — перестановку.
Вихідні дані
У першому рядку виведіть ціле число \(m\) — кількість добрих чисел.
У другому рядку виведіть \(m\) цілих чисел — добрі числа в порядку зростання.
Обмеження
\(2 \le n \le 10^5\),
\(1 \le p_i \le n\),
існує такий індекс \(i\), що \(p_i \neq i\),
для 60% тестів виконується додаткове обмеження: \(n \le 2000\).
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
3 3 2 1 | 2 1 2 |
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
7 7 5 3 6 2 4 1 | 1 1 |
Надіслати розв'язок
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|