Millor Intercanvi. X77714


Statement
 

pdf   zip   main.py

Un subvector d’un vector V és un tros del vector que va d’una posició i a una posició j (on iji \leq j) i que conté els elements V[i], V[i+1], V[i+2], ... V[j]. Un subvector pot tenir una sola posició (i=ji = j).

Sigui V un vector de naturals, no necessàriament ordenat. Aquest vector tindrà una mida de subvector màxim ordenat MM Ara bé, pot donar-se el cas que intercanviant dos element del vector, aquesta mida de subvector màxim ordenat, es vegi incrementada. Per exemple, si tenim el vector V=[1,3,2,5]V = [ 1, 3, 2, 5], la mida del subvector ordenat màxim serà 22, bé pel subvector que va de la posició 00 a la 11, pel subvector que va la posició 22 a la 33. Ara bé, si intercanviem les posicions 11 i 22, ens queda el vector V=[1,2,3,5]V = [1 ,2 , 3, 5], que té un subvector ordenat de mida màxima 44.

Fes la funció millor_intercanvi (V) tal que, donat un vector d’enters V, torni les dues posicions del vector i la mida del subvector ordenat més llarg que podem aconseguir amb un sol intercanvi d’aquestes dues posicions del vector (si no existissin, llavors i=j=0i = j = 0).

Per exemple si el vector és [1,3,2,7,5,2,3,1,8][1 , 3 , 2 , 7 , 5 , 2 , 3 , 1 , 8] la funció tornarà 4,7,54,7,5 ja que és la mida del subvector ordenat que va de les posicions 44 a 77 després d’haver intercanviat les posicions 44 i 77.

Si tenim el vector [2,3,4,7,5,9,3,1,8][2 , 3 , 4 , 7 , 5 , 9 , 3 , 1 , 8], la funció tornarà 3,4,63,4,6, ja que és la mida del subvector ordenat més llarg, de les posicions 00 fins a la 55 després d’haver intercanviat les posicions 33 i 44.

Entrada

Un vector V d’enters.

Sortida

Les dues posicions del vector i la mida del subvector ordenat més llarg que podem aconseguir amb un sol intercanvi d’aquestes dues posicions del vector (si no existissin, llavors i=j=0i = j = 0).

Public test cases
  • Input

    1 3 2 7 5 2 3 1 8
    

    Output

    (4, 7, 5)
    
  • Input

    2 3 4 7 5 9 3 1 8
    

    Output

    (3, 4, 6)
    
  • Information
    Author
    Jaume Baixeries
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python