Cicle més llarg (la funció) W28900


Statement
 

pdf   zip

Donada una permutació, quin és el seu cicle més llarg?

Per exemple, considereu la permutació (2, 6, 3, 5, 4, 1):

  • Si mirem la primera posició, ens diu que anem a la posició 2. La segona posició ens diu que anem a la posició 6. La sisena posició ens diu que tornem a la posició 1, tancant un cicle de longitud 3.

  • La tercera posició ens diu que ens quedem a la tercera posició, tancant un cicle de longitud 1.

  • Finalment, la quarta posició ens du a la cinquena, i la cinquena ens torna a la quarta, tancant un cicle de longitud 2.

Per tant, el cicle més llarg d’aquesta permutació té longitud 3.

Escriu una funció cicle_mes_llarg(p) que, donada una llista no buida p que conté una permutació dels nombres 1,2,3,,N1, 2, 3, \dots, N (NN és la mida de p), retorni la longitud del cicle més llarg d’aquesta permutació p.

Teniu exemples en el joc de proves públic.

Entrada

La funció té una llista com a paràmetre. Aquesta llista ha de contenir una permutació dels nombres 1,2,3,,N1, 2, 3, \dots, N, on NN és la mida de p.

Observacions

Un cop definida la funció, en provar-la al REPL de Python us hauria de sortir el mateix que podeu observar més avall.

Sample session
>>> cicle_mes_llarg([2,6,3,5,4,1])
3
>>> cicle_mes_llarg([1,2,3,4,5])
1
>>> cicle_mes_llarg([3,1,4,2])
4
>>> 
Information
Author
Jordi Delgado (basat en el problema P41101 de Salvador Roura)
Language
Catalan
Official solutions
Python
User solutions
Python