Cerca en un vector unimodal

En aquest problema, diem que un vector de n nombres enters
@v[0..@n − 1@]@ és unimodal si n ≥ 1, i existeix un índex j tal que
0 ≤ j ≤ n − 1 i que satisfà:

- @v[0]@  < …< @v[@j − 1@]@ < @v[@j@]@, i

- @v[@j@]@ > @v[@j + 1@]@ > @v[@j + 2@]@  > …> @v[@n − 1@]@.

Per exemple, el vector @[0, 2, 5, 7, 6, 5, 4, 3, 1]@ és unimodal (amb
j = 3).

Noteu que els vectors amb n ≤ 2 elements diferents són unimodals. En
general, noteu que tot vector estrictament creixent també és unimodal (i
en tots els casos j = n − 1), i anàlogament, tot vector estrictamentment
decreixent també és unimodal (i llavors j = 0).

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.

Precondició

El vector @v@ és unimodal.

Observació

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

Informació del problema

Autoria: Prof. EDA

Generació: 2026-01-25T22:41:31.107Z

© Jutge.org, 2006–2026.
https://jutge.org
