En aquest problema, diem que un vector de nombres enters @v[0..@@]@ és unimodal si , i existeix un índex tal que i que satisfà:
@v[0]@ @v[@@]@ @v[@@]@, i
@v[@@]@ @v[@@]@ @v[@@]@ @v[@@]@.
Per exemple, el vector @[0, 2, 5, 7, 6, 5, 4, 3, 1]@ és unimodal (amb ).
Noteu que els vectors amb elements diferents són unimodals. En general, noteu que tot vector estrictament creixent també és unimodal (i en tots els casos ), i anàlogament, tot vector estrictamentment decreixent també és unimodal (i llavors ).
Implementeu una funció eficient
bool search(int x, const vector<int>& v);
que, donats un enter @x@ i un vector unimodal @v@, retorni cert si @x@ apareix a @v@, i fals en cas contrari. Podeu usar i implementar funcions auxiliars si us calen.
El vector @v@ és unimodal.
Només cal enviar el procediment demanat; el programa principal serà ignorat.