from random import randint,choice
# tesztelési célokra használható az alábbi lista

tomegek=[]
for i in range(15):
    felsohatar=20 if choice([1,2,3])==1 else 10
    tomegek.append(randint(1,felsohatar))
    
# tomegek=[16, 8, 9, 4, 3, 2, 4, 7, 7, 12, 3, 5, 4, 3, 2]   # ez volt a forrásban
targyak_szama=len(tomegek)
print('Tömegek:',end=' ')
[print(tomeg,end=' ') for tomeg in tomegek]

print('\n2. feladat')
print(f'A tárgyak tömegének összege: {sum(tomegek)} kg')

print('3. feladat')
dobozok=[]
egy_doboz=0     # egy doboz üres állapottal "indul"
for tsz,tomeg in enumerate(tomegek,start=1):
    if egy_doboz+tomeg<=20: # ha az aktuális tárgy beletehető egy dobozba,
        egy_doboz+=tomeg    # akkor beletesszük (+)
    else:                   # ha nem, akkor
        dobozok.append(egy_doboz)   # előző dobozt a dobozokba helyezzük és
        egy_doboz=tomeg             # az aktuális tárggyal új dobozt kezdünk
        
    # ez a részprobléma sokféleképpen megoldható
    if tsz==targyak_szama:          # ha utolsó tárgyról van szó
        dobozok.append(egy_doboz)   # akkor az ő dobozát is tegyük a dobozokba

print('A dobozok tartalmának tömege (kg):',end=' ')
[print(doboz,end=' ') for doboz in dobozok]
print(f'\nA szükséges dobozok száma: {len(dobozok)}')
        
    
