Vector U

Un vector U és un vector d’enters que té tres parts: una baixada, una
vall i una pujada. La baixada b₁…b_(k) és un subvector tal que tots els
elements estan en ordre estrictament decreixent. La vall v₁…v_(m) és un
subvector on tots els elements són iguals. La pujada p₁…p_(n) és un
subvector tal que tots els seus valors estan en ordre estrictament
creixent.

A més, es compleixen aquestes dues condicions:

1.  k ≥ 1, m ≥ 3 i n ≥ 1. Dit altrament: tant la baixada com la pujada
    tenen almenys un element, mentre que la vall en té, almenys, tres.

2.  b_(k) > v₁ i v_(m) < p₁.

Per exemple, el vector V = [5 4 3 2 1 1 1 6 7 8 9 10] és un vector U:

  ------------------------------- ----------------------------- ----------------------------------
   $\underbrace{\verb|5 4 3 2|}$   $\underbrace{\verb|1 1 1|}$   $\underbrace{\verb|6 7 8 9 10|}$
              baixada                         vall                            pujada
  ------------------------------- ----------------------------- ----------------------------------

El colze U és la posició d’un vector U on es troba v_(m), és a dir, el
darrer element de la vall. Per exemple, per al vector
V = [5 4 3 2 1 1 1 6 7 8 9 10] la posició del colze U és 6, ja que és la
posició on es troba el darrer element de la vall.

Has de fer la funció colzeU, que torna la posició del colze U d’un
vector U.

    /* PRE:  v és un vector U.
       POST: torna la posició del colze U de v.
    */

    int colzeU(const vector<int>& v);

Observació

Només has d’enviar un fitxer que contingui la funció requerida, amb els
include necessaris i les funcions auxiliars que hauràs declarat (si n’hi
ha), i res més.

Proposeu una solució utilitzant cerca dicotòmica per aquest exercici.
Qualsevol altre tipus de solució implica l’anul·lació total de tot
l’exercici, independentment del veredicte del jutge.

Entrada

Un vector U d’enters.

Sortida

La posició del colze U.

Informació del problema

Autoria: PRO1

Generació: 2026-01-25T19:58:57.878Z

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