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 V[1:2] o pel subvector
V[3:4]. 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 V[5:9]
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, que és
V[1:6] després d’haver intercanviat les
posicions
i
.
Un vector V d’enters.
Un vector amb (en aquest ordre) les dues posicions
de V i la mida del subvector de V ordenat més
llarg que podem aconseguir amb un sol intercanvi
d’aquestes dues posicions del vector (si no existissin,
llavors
).
Input
9 1 3 2 7 5 2 3 1 8
Output
5 8 5
Input
9 2 3 4 7 5 9 3 1 8
Output
4 5 6