Posició d'inserció més a la dreta P54070


Statement
 

pdf   zip   main.cc

Escriviu una funció eficient

    int mes_a_la_dreta(double x, const vector<double>& v);

que retorni la posició més a la dreta on xx podria ser inserit en el vector ordenat vv (afegint una posició al final de vv i movent els elements que calgui una posició cap a la dreta) de manera que vv romangui ordenat.

Per exemple, assumiu que xx és 23. Si vv és [15,15,20,30,40,40][15, 15, 20, 30, 40, 40], hauríem d’inserir xx a la posició 3 (entre 20 i 30), i el vv resultant seria [15,15,20,23,30,40,40][15, 15, 20, 23, 30, 40, 40]. Si vv és [17,23,23,35,42,42][17, 23, 23, 35, 42, 42], podríem inserir xx a les posicions 1, 2 o 3, així que la vostra funció ha de retornar 3. Si vv és [3,5,7,9][3, 5, 7, 9], xx hauria de ser inserit a la posició just a la dreta del final del vector, això és, 4. Com a exemple final, si vv és [23,23][23, 23], xx hauria de ser inserit a 2.

Precondició

El vector vv està ordenat en ordre no-decreixent.

Observacions

  • La vostra solució només pot usat la llibreria vector.

  • Podeu escriure i usar funcions addicionals si us calen.

  • Només cal enviar el procediment requerit; el programa principal serà ignorat.

Information
Author
Salvador Roura
Language
Catalan
Other languages
English
Official solutions
C++
User solutions
C++