Partició Equilibrada. X54178


Statement
 

pdf   zip   main.R

html

Sigui V un vector de mida N que conté enters (tant positius com negatius). Una partició de V és una posició i del vector (on i ∈ 1:length(V)), tal que que divideix el vector V en dues parts: V[1:i] i V[(i+1):length(V)]. Es tracta de trobar la i tal que

sum(V[1:i]) - sum(V[(i+1):length(V)])

sigui mínima (en valor absolut). Aquesta i és la partició equilibrada.

Fes la funció particio_equilibrada(V) tal que, donat un vector V, en torni la partició equilibrada. Si n’hi haguessin més d’una, torneu la de més a l’esquerra. El valor 0 per a una partició equilibrada és correcte, ja que vol dir que una partició del vector és buida (i la seva suma és zero).

Per exemple, si la funció rep el vector V = [4 , 1 , 2 , 3], torna 2, ja que (4 + 1) − (2 + 3) = 0, mentre que si rep el vector V = [2 , 1 , 3 , 4], torna un 3, que és la partició equilibrada, ja que (2+1+3) − (4) = 2 és la diferència mínima entre la part esquerra i la dreta.

Tingueu en compte que, si calculeu la suma total del vector al principi de la funció, podreu resoldre aquest problema amb una sola passada sobre el vector V.

Observació

Només cal que enviïs el fitxer amb la funció (i les funcions auxiliars que hagis fet) que et demanem i prou. El fitxer main.R et pot servir per a fer la teva solució, però no cal que n’enviïs el contingut.

Entrada

Un vector V d’enters, amb, almenys, un element.

Sortida

La partició equilibrada del vector V. Si n’hi haguessin més d’una, torneu la de més a l’esquerra.

Public test cases
  • Input

    4
    4 1 2 3
    

    Output

    2 
    
  • Input

    4
    2 1 3 4
    

    Output

    3 
    
  • Information
    Author
    Jaume Baixeries
    Language
    Catalan
    Official solutions
    R
    User solutions