Un subvector d’un vector V és un tros
del vector que va d’una posició i a una posició
j (on
)
i que conté els elements V[i], V[i+1], V[i+2], ... V[j]. Un
subvector pot tenir una sola posició
().
Sigui V un vector de naturals, no necessàriament
ordenat. Aquest vector tindrà una mida de subvector màxim ordenat
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
,
la mida del subvector ordenat màxim serà
,
bé pel subvector que va de la posició
a la
,
pel subvector que va la posició
a la
.
Ara bé, si intercanviem les posicions
i
,
ens queda el vector
,
que té un subvector ordenat de mida màxima
.
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
).
Per exemple si el vector és la funció tornarà ja que és la mida del subvector ordenat que va de les posicions a després d’haver intercanviat les posicions i .
Si tenim el vector , la funció tornarà , ja que és la mida del subvector ordenat més llarg, de les posicions fins a la després d’haver intercanviat les posicions i .
Un vector V d’enters.
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 ).
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)