Vector Muntanya U59140


Statement
 

pdf   zip   main.cc

Un vector Muntanya és un vector d’enters que té tres parts: una pujada, un pla i una baixada. La pujada p1pkp_1 \dots p_k és un subvector tal que tots els elements estan en ordre estrictament creixent. El pla v1vmv_1 \dots v_m és un subvector on tots els elements són iguals. La baixada b1bnb_1 \dots b_n és un subvector tal que tots els seus valors estan en ordre estrictament decreixent.

A més, es compleixen aquestes dues condicions:

  1. k1k \geq 1, m3m \geq 3 i n1n \geq 1. Dit altrament: tant la pujada com la baixada tenen almenys un element, mentre que el pla en té, almenys, tres.

  2. pk<v1p_k < v_1 i vm>b1v_m > b_1.

Per exemple, el vector V = [1 2 3 4 5 5 5 5 4 3 2] és un vector Muntanya:

$\underbrace{\verb|1 2 3 4|}$ $\underbrace{\verb|5 5 5 5|}$ $\underbrace{\verb|4 3 2|}$
pujada pla baixada

El colze Muntanya és la posició d’un vector Muntanya on es troba v1v_1, és a dir, el primer element del pla. Per exemple, per al vector V = [1 2 3 4 5 5 5 5 4 3 2] la posició del colze Muntanya és 4, ja que és la posició on es troba el primer element del pla.

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

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

int colzeMuntanya(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 Muntanya d’enters.

Sortida

La posició del colze Muntanya.

Public test cases
  • Input

    11
    
    1 2 3 4 5 5 5 5 4 3 2
    
    7
    -2 2 3 3 3 2 1 
    
    5
    -2 2 2 2 1
    
    9
    -2 6 6 6 5 4 3 2 1
    

    Output

    4
    2
    1
    1
    
  • Input

    10
    1 2 3 4 5 6 7 7 7 6
    
    11
    1 2 3 4 5 6 7 7 7 7 6
    

    Output

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