Búsqueda de un ciclo en una permutación con suma máxima
Python
Hard
loops
Tarea «Búsqueda de un ciclo en una permutación con suma máxima»
Dada una permutación de números del 1 al N. Considere un grafo dirigido donde cada vértice i tiene una arista hacia a[i]. Encuentre un ciclo en este grafo cuya suma de elementos sea máxima. Si hay varios ciclos de este tipo, muestre cualquiera. Se garantiza que N ≥ 2. Se considera ciclo a una secuencia de vértices distintos donde cada vértice siguiente se obtiene según la regla: siguiente = a[actual], y el último vértice regresa al primero mediante una arista.
Formato de entrada
La primera línea contiene un número entero N (2 ≤ N ≤ 10^5). La segunda línea contiene N números enteros a[1], a[2], ..., a[N] — una permutación de los números del 1 al N.
Formato de salida
Muestre dos números: la longitud del ciclo y la suma de los elementos del ciclo. Luego, en la siguiente línea, muestre los elementos del ciclo en orden de recorrido, comenzando desde cualquier elemento.
Ejemplos
Ejemplo 1
ENTRADA
5
2 3 1 5 4
SALIDA
2 9
4 5
Ejemplo 2
ENTRADA
7
1 2 3 4 5 6 7
SALIDA
1 7
7
Ejemplo 3
ENTRADA
4
abc
cde
xyz
zab
SALIDA
Invalid input
Ejemplo 4
ENTRADA
4
2 1 4 3
SALIDA
2 7
3 4
Ejemplo 5
ENTRADA
3
1 0 2
SALIDA
1 1
1
main.py