Vectors quasi-ordenats P71839


Statement
 

pdf   zip   main.cc

html

En aquest problema, direm que un vector està quasi-ordenat si caldria fer exactament un intercanvi entre els elements de dues posicions diferents perquè el vector quedés totalment ordenat. Per exemple, el vector [2, 7, 5, 3, 9] està quasi-ordenat, perquè si intercanviem el 7 amb el 3 el vector queda ordenat del tot. Com altres exemples, ni el vector [5, 4, 3, 2] ni el vector [0, 1] estan quasi-ordenats.

Implementeu un procediment

void posicions(const vector<int>& V, int& e, int& d);

que, donat un vector V quasi-ordenat, deixi dins de e i de d les dues posicions que caldria intercanviar per ordenar V. S’ha de complir 0 ≤ e < d < V.size().

Precondició

El vector V està quasi-ordenat i no té elements repetits.

Observació Només cal enviar el procediment demanat; el programa principal serà ignorat.

Information
Author
Jordi Cortadella
Language
Catalan
Official solutions
C++
User solutions
C++