"""
2012. május: Futár
@author Klemand66
"""

print("\n1. feladat\n")

betxt = open("tavok.txt")

utak=[]
for sor in betxt:
    darsor=sor.strip().split()
    adatsor=list(map(int,darsor))
    # 0: nap (1-7), 1: fuvarszám (1-40), 2: km (<=30)
    utak.append(adatsor)
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

utak.sort(key=lambda x:x[1]) # először a mellékszempont (fuvarszám) szerint rendezünk
utak.sort(key=lambda x:x[0]) # másodszor pedig a főszempont (nap) szerint

print(f'A hét első útja {utak[0][2]} km volt.')



print("\n3. feladat\n")

print(f'A hét utolsó útja {utak[-1][2]} km volt.')



print("\n4. feladat\n")

naplista=list(map(lambda x: x[0],utak))
sznapok=list(filter(lambda i: i not in naplista, range(1,8)))
sznapokstr=list(map(str,sznapok))
print(f'A futár a következő napokon nem dolgozott: {". nap, ".join(sznapokstr)}. nap')



print("\n5. feladat\n")

maxfuvarut=max(utak,key=lambda x: x[1])
print(f'A futárnak a hét {maxfuvarut[0]}. napján volt a legtöbb fuvarja: {maxfuvarut[1]}')

# Szorgalmi feladat: az összes nap megkeresése, amikor maximális számú fuvarja volt:
maxfuvar=maxfuvarut[1]
maxfuvarutak=list(filter(lambda x: x[1]==maxfuvar, utak))

print("\nSzűréssel az összes nap, amikor maximális számú fuvarja volt: ")

for ut in maxfuvarutak:
    print(f'{ut[0]}. napon {ut[1]} fuvar')

    

print("\n6. feladat\n")

napikmek=[]
for i in range(7): # a listaindex 0-6-ig terjed
    napikmek.append(0) # kezdőértékek beállítása

for ut in utak: 
    aktnap=ut[0]
    napikmek[aktnap-1]+=ut[2] # érték szerinti indexelés

for i in range(1,8): # a napsorszám 1-7-ig terjed
        print(f'{i}. nap: {napikmek[i-1]} km')



print("\n7. feladat\n")

def dij(km):
    tavhatarok=[0,2,5,10,20,30]
    dijak=[500,700,900,1400,2000]
    bennevan=list(map(lambda i: tavhatarok[i-1]<km and km<=tavhatarok[i], range(1,len(tavhatarok))))
    aktindex=bennevan.index(True)
    return dijak[aktindex]

"""
Most talán egyszerűbb lenne az elif-es algoritmus, de sok sávnál már nem elegáns.

def dij(km):
    if km<=2:
        return 500
    elif km<=5:
        return 700
    elif km<=10:
        return 900
    elif km<=20:
        return 1400
    else:
        return 2000
"""        

tav=int(input("Kérem a megtett táv hosszát km-ben (max 30): "))
print(f'A megtett távért {dij(tav)} Ft díjazás jár.')



print("\n8. feladat\n")

kitxt = open("dijazas.txt","w")

for ut in utak:
   kitxt.write(f'{ut[0]}. nap {ut[1]:2}. út: {dij(ut[2]):4} Ft\n') 
            
kitxt.close()
print("A kiíratás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n9. feladat\n")

hetidij=0
for ut in utak:
    hetidij+=dij(ut[2])

print(f'A futárnak a heti munkájáért {hetidij} Ft díjazás jár.')


input("\nA befejezéshez nyomd meg az ENTER billentyűt!")

