Primera aparició en vector quasi ordenat X48505


Statement
 

pdf   zip   main.cc

Escriviu una funció eficient

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

que retorni la posició de la primera aparició de @x@ dins del vector @v@. Si @x@ no apareix a @v@, retorneu un -1.

Precondició

El vector @v@ està “quasi ordenat” en ordre no decreixent, en el sentit que hi pot haver com a molt un parell d’índexos ii i jj tals que 0i<j<n0 \le i < j < n i @v@[ii] >> @v@[jj].

Observació

Podeu definir funcions auxiliars si us calen.

Observació

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

Observació

Feu servir l’arxiu @main.cc@ que us donem. Conté el procediment principal que llegeix el joc de proves, crida a la funció que us demanem implementar, i escriu el resultat en el format esperat.

Per a la vostra informació, un joc de proves consta de diversos casos. Cada cas comença amb un natural n0n \geq 0, seguit dels nn @doubles@ que formen el vector @v@. A continuació apareix un natural c0c \geq 0, seguit de cc @doubles@ pels quals volem conèixer quina és la seva primera aparició a @v@.

Public test cases
  • Input

    7
    1 2 2 3 2 3 4
    7
    0 1 2 2.5 3 4 5
    
    6
    1 2 2 3 3 4
    7
    0 1 2 2.5 3 4 5
    

    Output

    -1
    0
    1
    -1
    3
    6
    -1
    -1
    0
    1
    -1
    3
    5
    -1
    
  • Information
    Author
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++