Поиск цикла в перестановке с максимальной суммой

Python Сложный loops

Задача «Поиск цикла в перестановке с максимальной суммой»

Дана перестановка чисел от 1 до N. Рассмотрим ориентированный граф, где каждая вершина i имеет ребро к a[i]. Найдите цикл в этом графе, сумма элементов которого максимальна. Если таких циклов несколько, выведите любой. Гарантируется, что N ≥ 2. Циклом считается последовательность различных вершин, где каждая следующая вершина получается по правилу: следующая = a[текущая], и последняя вершина ребром возвращается к первой.

Формат ввода

Первая строка содержит целое число N (2 ≤ N ≤ 10^5). Вторая строка содержит N целых чисел a[1], a[2], ..., a[N] — перестановка чисел от 1 до N.

Формат вывода

Выведите два числа: длину цикла и сумму элементов цикла. Затем на следующей строке выведите элементы цикла в порядке обхода, начиная с любого элемента.

Примеры

Пример 1

ВВОД
5 2 3 1 5 4
ВЫВОД
2 9 4 5

Пример 2

ВВОД
7 1 2 3 4 5 6 7
ВЫВОД
1 7 7

Пример 3

ВВОД
4 abc cde xyz zab
ВЫВОД
Invalid input

Пример 4

ВВОД
4 2 1 4 3
ВЫВОД
2 7 3 4

Пример 5

ВВОД
3 1 0 2
ВЫВОД
1 1 1
main.py