Siguin X i Y dos vectors de naturals. El
vector X de mida N1 conté les
capacitats de N1 caixes. El vector
Y de mida N2 conté els pesos
dels N2 elements que cal col·locar a X.
Per exemple, si això vol dir que hi ha 2 caixes de capacitat cadascuna seguides d’una de capacitat . Si , cal col·locar (si podem) aquests elements a .
El procediment per a col·locar un element és molt simple: per a un
element
i mirem de col·locar-lo a la primera caixa d’X que puguem
(a partir de la primera caixa). Pot ser que no puguem col·locar un pes
en una caixa per dos motius: (1) perquè la caixa no té prou capacitat
per al pes o (2), perquè la caixa té prou capacitat, però té altres
pesos a dins, i el pes que volem col·locar ja no hi cap. Si no podem
col·locar un pes en cap caixa, acabem i tornem la
posició d’aquest pes: i. Si podem col·locar-lo, llavors
anem a
.
Si ja hem acabat de col·locar tots els elements de Y,
llavors tornem N2 + 1, cosa que voldrà dir que hem pogut
col·locar tots els elements d’Y.
Per exemple, si
i
actuarem així: Col·loquem
a la primera caixa. Col·loquem
a la primera caixa. Col·loquem
a la primera caixa. Col·loquem
a la segona caixa (la caixa anterior està massa plena). Col·loquem
a la segona caixa. Tornem
,
que vol dir que hem col·locat tots els elements d’Y.
Fes la funció colloca(X,Y) tal que, donat un vector de
capacitats X i un de pesos Y, torni fins a
quin element d’Y s’ha quedat per col·locar. Si torna
length(Y) + 1 voldrà dir que els ha pogut col·locar
tots.
Per exemple, si i , llavors la funció torna . Si i , llavors la funció torna . Si i , llavors la funció torna .
Un vector de capacitats X i un de pesos
Y.
Fins a quin element d’Y s’ha quedat per col·locar. Si
torna length(Y) + 1 voldrà dir que els ha pogut col·locar
tots.
Input
3 10 10 10 6 9 9 9 1 1 1
Output
7
Input
3 10 10 10 2 9 11
Output
2
Input
2 1 4 6 5 5 5 5 5 5
Output
1