Vectors quasi-ordenats P71839


Statement
 

pdf   zip   main.cc

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 00 \le @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++