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.
Input
4 4 1 2 3
Output
2
Input
4 2 1 3 4
Output
3