Vector U Z30313


Statement
 

pdf   zip   main.cc

Un vector U és un vector d’enters que té tres parts: una baixada, una vall i una pujada. La baixada b1bkb_1 \dots b_k és un subvector tal que tots els elements estan en ordre estrictament decreixent. La vall v1vmv_1 \dots v_m és un subvector on tots els elements són iguals. La pujada p1pnp_1 \dots 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. k1k \geq 1, m3m \geq 3 i n1n \geq 1. Dit altrament: tant la baixada com la pujada tenen almenys un element, mentre que la vall en té, almenys, tres.

  2. bk>v1b_k > v_1 i vm<p1v_m < p_1.

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 vmv_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.

Public test cases
  • Input

    12
    5 4 3 2 1 1 1 6 7 8 9 10
    
    10
    3 1 -1 -5 -5 -5 -5 -4 -3 10
    
    5
    4 3 3 3 4
    
    10
    4 3 3 3 4 5 6 7 8 9
    

    Output

    6
    6
    3
    3
    
  • Information
    Author
    PRO1
    Language
    Catalan
    Other languages
    Spanish
    Official solutions
    C++
    User solutions
    C++