Cerca en un vector unimodal

En aquest problema, diem que un vector de nn nombres enters @v[0..@n1n-1@]@ és unimodal si n1n \ge 1, i existeix un índex jj tal que 0jn10 \leq j \leq n-1 i que satisfà:

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

Noteu que els vectors amb n2n \leq 2 elements diferents són unimodals. En general, noteu que tot vector estrictament creixent també és unimodal (i en tots els casos j=n1j = n-1), i anàlogament, tot vector estrictamentment decreixent també és unimodal (i llavors j=0j = 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