Millor desordre. X71160


Statement
 

pdf   zip   main.py

html

Definim el desordre d’un vector v d’aquesta manera:

desordre(v) = 
n−1
i=1
 v[i] − v[i−1]

Feu la funció

millor_desordre(v)

tal que, donat un vector v de mida n > 0 que conté enters (positius i negatius) que no han d’estar necessàriament ordenats, torni un parell de subíndexos i, j tals que 0 ≤ i < j < n de manera que l’intercanvi dels valors d’aquestes dues posicions siguin les que maximitzin el valor de desordre(v). Si hi ha més d’un parell que maximitzi amb el mateix valor la funció desordre(v), torneu la més petita, tenint en compte que

(i,j) < (i′,j′) 

si i només si

i < i′  o bé  i = ′i  i  j < j′ 

En cas que no n’hi hagi cap intercanvi que maximitzi el valor de desordre(v) cal tornar (0,0).

Per exemple, si v = [1, 4, 2, 3], llavors la funció tornarà el vector (1 ,3), ja que desordre([1, 4, 2, 3]) = 2, però si intercanviem les posicions 1 i 3 tenim que v = [1, 3, 2, 4] i per tant tenim que desordre([1, 3, 2, 4]) = 3. A més, aquest és l’intercanvi que maximitza el valor d’aquesta funció.

És evident que si fer una funció que calculi desordre(v) us pot ajudar a resoldre el problema.

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 de mida n > 0 que conté enters (positius i negatius) que no han d’estar necessàriament ordenats

Sortida

El parell de subíndexos i, j tals que 0 ≤ i < j < n que maximitzen desordre(v). Si no n’hi ha cap, llavors ha de tornar (0, 0).

Public test cases
  • Input

    1 4 2 3 
    

    Output

    (1, 3)
    
  • Input

    1 3 5 7 9
    

    Output

    (0, 0)
    
  • Information
    Author
    INFO.
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python