automata=[]
vasarlas=[]
ermek=[1,2,5,10,20,50,100]
# 1. feladat - adatok beolvasása
with open('csoki.txt','r') as fbe:
    elso_sor=int(fbe.readline().strip())    # ez nekünk nem kell majd semmire
    for sor in fbe:
        sor=sor.strip().split()
        sor=list(map(int,sor))              # minden adat egész szám          
        automata.append(sor)
fbe.close()    
with open('vasarlas.txt','r') as fbe:
    elso_sor=int(fbe.readline().strip())    # ez nekünk nem kell majd semmire 
    for sor in fbe:
        sor=sor.strip().split()
        sor=list(map(int,sor))              # minden adat egész szám
        vasarlas.append(sor)
fbe.close() 
# 2. feladat - automata összértéke
print('2. feladat')
ertek=0
for rekesz in automata:
    ertek+=rekesz[1]*rekesz[2]              # db * ár
print(f'Az automatában {ertek} fabatka értékű csokoládé van.')

#3. feladat
print('3. feladat')
rekeszek=set()                          # halmazba gyűjtjük a rekeszszámokat
for vetel in vasarlas:
    rekeszek.add(vetel[0])
print('Ezekből a rekeszekből próbáltak vásárolni:')
for rekesz in rekeszek:                 # halmaz eleminek kiírása
    print(rekesz,end=' ')
print()

# 4. feladat - 7 db egyforma csokoládé vásárlása valamennyi pénzért
print('4. feladat')
penz=int(input('Mennyi fabatkád van? '))
db=7
print('Választható rekeszek:',end=' ')
for rekesz in automata:                 # ha van elég csoki a rekeszben és
    if rekesz[1]>=db and penz>=(db*rekesz[2]):  # elég a pénz is...
        print(rekesz[0],end=' ')
print()

# 5. feladat -
# valamely rekeszből valamennyi csoki vásárlása, optimális címletezéssel
print('5.feladat')
r=int(input('Kérem a rekesz sorszámát: '))-1        # sorszám, index viszonya
db=int(input('Hány darab csokit szeretne: '))
print(f'Csoki ára: {automata[r][2]} fabatka')   
ertek=automata[r][2]*db                             # ennyi db-ért ennyit fizet
print(f'Fizetendő: {ertek} fabatka')

# címletezes
cimletezes=[]
for cimlet in reversed(ermek):  # a legnagyobb címlettől indulunk
    c_db=ertek//cimlet          # hány egészszer fér bele a címlet
    ertek=ertek%cimlet          # a többi címlet a maradékkal megy majd tovább
    print(f'{cimlet} fabatkás: {c_db}')

# 6. feladat - 7. rekeszből történő vásárlások elemzése (képernyőre is)
print('6. feladat')
r=7
indulo_db=automata[r-1][1]      # ennyi csoki van kezdetben a rekeszben
ar=automata[r-1][2]             # ennyibe kerül egy csoki
with open('rekesz7.txt','w') as fki:
    for ssz,vetel in enumerate(vasarlas,start=1):
        if vetel[0]==r:                 # 7. rekeszről van szó
            if vetel[1]<=indulo_db:     # van még benne elég csoki
                indulo_db-=vetel[1]     # csökkentjük a darabszámot
                fizet=0                 # fizetendő meghatározása
                for i in range(2,9):
                    fizet+=vetel[i]*ermek[i-2]
                if fizet>=ar*vetel[1]:  # elég pénzt dobott be
                    print(f'{ssz}\t{vetel[1]}')
                    print(f'{ssz}\t{vetel[1]}',file=fki)
                else:
                    print(f'{ssz}\tnem volt elég pénz')
                    print(f'{ssz}\tnem volt elég pénz',file=fki)
            else:
                print(f'{ssz}\tkevés a csoki')
                print(f'{ssz}\tkevés a csoki',file=fki)
fki.close()                    
                
    
    
          
