# -----------------------------------------------------------------------------------
# 1. Olvassa be a tavok.txt állományban talált adatokat, s annak felhasználásával
# oldja meg a következő feladatokat!
# -----------------------------------------------------------------------------------

print('1. feladat: Fájlbeolvasás')
mátrix = []
for i in range(7):  # mátrixfeltöltő ciklus: 40 elemű listák, 0 értékkel a mátrix sorai
    sor = [0] * 40
    mátrix.append(sor)

for sor in open('tavok.txt', 'r'):
    sor = sor.strip().split()  # fájl egy sorának beolvasása és listává alakítása: [nap,fuvar,km]
    nap = int(sor[0]) - 1  # 0.eleme: nap, 1.eleme: fuvarszám, 3.eleme: megtett km
    fuvar = int(sor[1]) - 1  # -1 az indexelések miatt
    km = int(sor[2])
    mátrix[nap][fuvar] = km

# -----------------------------------------------------------------------------------
# 2. Írja ki a képernyőre, hogy mekkora volt a hét legelső útja kilométerben!
# Figyeljen arra, hogy olyan állomány esetén is helyes értéket adjon, amiben
# például a hét első napján a futár nem dolgozott!
# -----------------------------------------------------------------------------------

print('2. feladat:')
elso = 0
for i in range(7):
    if mátrix[i][0] != 0:  # Ha egy napon nem dolgozott, akkor ott 0 érték van
        elso = mátrix[i][0]  # az első helyen, azaz a 0. indexnél
        break
print('\tAz első út hossza', elso, 'km.')

# -----------------------------------------------------------------------------------
# 3. Írja ki a képernyőre, hogy mekkora volt a hét utolsó útja kilométerben!
# -----------------------------------------------------------------------------------

print('3. feladat:')
utolso = 0

for i in range(6, -1, -1):  # visszafelé haladunk a napokban
    x = mátrix[i].count(0)  # megszámoljuk az adott napnál a nullákat
    if x != 40:  # ha nem mind az, akkor dolgozott azon a napon
        utolso = mátrix[i][40 - x - 1]  # utolsó nem nulla bejegyzés indexe: 40-x-1
        break
print('\tAz utolsó út hossza', utolso, 'km.')

# -----------------------------------------------------------------------------------
# 4. Tudjuk, hogy a futár minden héten tart legalább egy szabadnapot.
# Írja ki a képernyőre, hogy a hét hányadik napjain nem dolgozott a futár!
# -----------------------------------------------------------------------------------

print('4. feladat:')
szabad = []  # szabadnapok listája
for i in range(7):
    if mátrix[i].count(0) == 40:  # ha a mátrix egy sor csupa nulla maradt, akkor
        szabad.append(i + 1)  # ott nem dolgozott (i+1 a "normál" napszámozás miatt!)
for i in range(len(szabad)):
    print('\t%d. napon nem dolgozott' % szabad[i])

# -----------------------------------------------------------------------------------
# 5. Írja ki a képernyőre, hogy a hét melyik napján volt a legtöbb fuvar!
# Amennyiben több nap is azonos, maximális számú fuvar volt, elegendő
# ezek egyikét kiírnia.
# -----------------------------------------------------------------------------------

print('5. feladat:')
fuvar = []  # minden napra megszámoljuk a fuvarokat
for i in range(7):
    x = 40 - mátrix[i].count(0)  # nem nullákat számoljuk
    fuvar.append(x)  # eredmény megy a fuvar listába
maxi = max(fuvar)  # maximum kiválasztása

# maximumhoz tartozó index: fuvar.index(maxi)
print('\tLegtöbb fuvar (', maxi, ') napja: ', fuvar.index(maxi) + 1)

# -----------------------------------------------------------------------------------
# 6. Számítsa ki és írja a képernyőre a mintának megfelelően, hogy az egyes
# napokon hány kilométert kellett tekerni!
# -----------------------------------------------------------------------------------

print('6. feladat:')
nap = 1
for elem in mátrix:  # a mátrix egy eleme egy lista, numerikus értékekkel
    print('\t%d. nap: %d km' % (nap, sum(elem)))  # ezeket összegezzük: sum() függvény
    nap += 1

# -----------------------------------------------------------------------------------
# 7. A futár az egyes utakra az út hosszától függően kap fizetést az alábbi
# táblázatnak megfelelően:
#                    1 –  2 km    500 Ft
#                    3 –  5 km    700 Ft
#                    6 – 10 km   900 Ft
#                   11 – 20 km  1400 Ft
#                   21 – 30 km  2000 Ft
# Kérjen be a felhasználótól egy tetszőleges távolságot, és határozza meg,
# hogy mekkora díjazás jár érte! Ezt írja a képernyőre!
# -----------------------------------------------------------------------------------

print('7. feladat')

def fizetés(távolság):  # készítünk egy függvényt a fenti táblázat szerint
    if távolság > 0 and távolság < 3:
        return 500
    if távolság > 2 and távolság < 6:
        return 700
    if távolság > 5 and távolság < 11:
        return 900
    if távolság > 10 and távolság < 21:
        return 1400
    if távolság > 20 and távolság < 31:
        return 2000

# itt alkalmazzuk a függvényünket
fizet = fizetés(int(input('\tKérek egy távolságot (km): ')))
print('\tEzért a távolságért jár: ', fizet, ' Ft')

# -----------------------------------------------------------------------------------
# 8. Határozza meg az összes rögzített út ellenértékét! Ezeket az értékeket írja ki
# a dijazas.txt állományba nap szerint, azon belül pedig az út sorszáma szerinti
# növekvő sorrendben az alábbi formátumban:
#           1. nap 1. út: 700 Ft
#           1. nap 2. út: 900 Ft
#           1. nap 3. út: 2000 Ft
#           …
# -----------------------------------------------------------------------------------

print('8. feladat')
összeg = 0  # ez a 9. feladathoz kell
fv = open('dijazas.txt', 'w')
for nap in range(7):  # mátrix minden elemét vizsgáljuk
    for fuvar in range(40):
        if mátrix[nap][fuvar] != 0:  # ha nem nulla az adott mátrixelem, akkor...
            fizet = fizetés(mátrix[nap][fuvar])  # fizetés() függvény alkalmazása
            print('\t', nap + 1, '. nap ', fuvar + 1, '. fuvar: ', fizet, ' Ft')
            összeg += fizetés(mátrix[nap][fuvar])
            # összegezzük a keresetet a 9. feladathoz
            fv.write(str(nap + 1) + '. nap ' + str(fuvar + 1) + '. fuvar: ' + str(fizet) + ' Ft\n')
fv.close()

# -----------------------------------------------------------------------------------
# 9. Határozza meg, és írja ki a képernyőre, hogy a futár mekkora összeget
# kap a heti munkájáért!
# -----------------------------------------------------------------------------------
print('9. feladat')
print('\tÖsszes kereset: ', összeg)