Posició més dominant. X93059


Statement
 

pdf   zip   main.py

html

Sigui v un vector de mida n (on n ≥ 3) que conté enters positius. La posició i del vector (on 0 < i < n−1) és dominant si és el valor v[i] és més gran que els seus valors adjacents, és a dir, si v[i] és estríctament més gran que v[i-1] i que v[i+1]. Diem que la dominància de i (dom(i)) és la diferència de v[i] amb els seus valors adjacents:

dom(i) = abs(v[i−1] − v[i]) + abs(v[i] − v[i+1])  per a  0 < i < n−1 

Siguin i i j dues posicions dominants de v. Diem que i és més dominant que j si i només si:

  1. i i j són dominants.
  2. dom(i) > dom(j) o bé dom(i) = dom(j) i i > j.

Dit altrament: si i i j són dominants, llavors i és més dominant que j si té una dominància més gran o bé (en cas d’empat) i és estrictament més gran que j.

Fes la funció dominant(v) tal que, donat un vector v, torni la posició més dominant del vector si aquest existeix, o bé −1 en cas que no n’hi hagi cap.

Observació

Només cal que enviïs el fitxer amb la funció (i les funcions auxiliars que hagis fet) que et demanem i prou en un sol fitxer que es digui solution.py.

El fitxer main.py et pot servir per a fer la teva solució, però no n’has d’enviar el contingut.

Per a executar el programa al teu terminal, hauràs de tenir els fitxers main.py i solution.py al mateix directori, amb els fitxers dels jocs de proves. Si vols executar el primer joc de proves, cal que facis:

python3 main.py < sample-1.inp

Entrada

Un vector v d’enters, amb, almenys, tres elements.

Sortida

La posició més dominant, si existeix, −1 altrament.

Public test cases
  • Input

    4 1 2 3 6 2 10 1 5 2 2 1 3 1
    

    Output

    6
    
  • Input

    2 1 3 4 6 6 2 1 2 4
    

    Output

    -1
    
  • Input

    1 1 1 2 1 1 1 2 1 1
    

    Output

    7
    
  • Information
    Author
    INFO
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python