Vector bicreixent P99753


Statement
 

pdf   zip   main.cc

En aquest problema, diem que un vector de nn nombres enters @v[0..@n1n-1@]@ és bicreixent si n2n \ge 2, @v[0]@ >> @v[@n1n-1@]@, i existeix un índex jj entre 00 i n2n-2 que satisfà:

  • @v[0]@ \le \ldots \le @v[@j1j-1@]@ \le @v[@jj@]@,

  • @v[@j+1j+1@]@ \le @v[@j+2j+2@]@ \le \ldots \le @v[@n1n-1@]@.

Per exemple, el vector @[12, 12, 15, 20, 1, 3, 3, 5, 9]@ és bicreixent (amb j=3j = 3).

Implementeu una funció eficient

    bool search(int x, const vector<int>& v);

que, donats un enter @x@ i un vector bicreixent @v@, retorni si @x@ apareix a @v@ o no. Podeu usar i implementar funcions auxiliars si us calen.

Precondició

El vector @v@ és bicreixent.

Observació

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

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