
ceg=[]

#-----------------------------------------------------------------------------
# 1. Olvassa be és tárolja el az autok.txt fájl tartalmát!
#-----------------------------------------------------------------------------
fbe=open('autok.txt','r')
for sor in fbe:
    sor=sor.strip().split()
    ceg.append(sor)
fbe.close()
#-----------------------------------------------------------------------------
# 2. Adja meg, hogy melyik autót vitték el utoljára a parkolóból! Az eredményt
#    a mintának megfelelően írja a képernyőre!
#-----------------------------------------------------------------------------
print('2. feladat')
#Vagy egy while-ciklussal...
i=-1
while ceg[i][5]!='0':
    i-=1
nap=ceg[i][0]
rsz=ceg[i][2]

print('%s. nap rendszám: %s' %(nap,rsz))
#vagy egy "megfordított" mátrix-szal for ciklussal dolgozunk
ceg2=ceg.copy()
ceg2.reverse()
#vagy:
#for adatok in ceg[::-1]:
for adatok in ceg2:    
    if adatok[5]=='0':
        nap=adatok[0]
        rsz=adatok[2]
        break

print('%s. nap rendszám: %s' %(nap,rsz))
#-----------------------------------------------------------------------------
# 3. Kérjen be egy napot és írja ki a képernyőre a minta szerint, hogy mely
#    autókat vitték ki és hozták vissza az adott napon!
#-----------------------------------------------------------------------------

print('3. feladat')
nap=input('Nap: ') 

print('Forgalom a(z) %s. napon:' %nap)

for adatok in ceg:
    if adatok[0]==nap:
        #feltételes értékadás, ilyenre is van lehetőség
        ki_vagy_be='be' if adatok[5]=='0' else 'ki'
        print(adatok[1]+' '+adatok[2]+' '+adatok[3]+' '+ki_vagy_be)
#-----------------------------------------------------------------------------
# 4. Adja meg, hogy hány autó nem volt bent a hónap végén a parkolóban!
#-----------------------------------------------------------------------------
print('4. feladat')

#10 db autó: CEG300,CEG301,...,CEG309
#rsz='CEG30'+utolsó számjegy indexelheti az auto listát!!!!!!
autok=[0]*10

for adatok in ceg:
    index=int(adatok[2][-1])  #adatok[2] a rendszám, -1 utolsó számjegy indexe
    autok[index]+=1

db=0
for auto in autok:
    if auto%2!=0:
        db+=1

print('A hónap végén %d autót nem hoztak vissza.' %db)
#-----------------------------------------------------------------------------
# 5. Készítsen statisztikát, és írja ki a képernyőre mind a 10 autó esetén az
#    ebben a hónapban megtett távolságot kilométerben! A hónap végén még kint
#    lévő autók esetén az utolsó rögzített kilométerállással számoljon!
#    A kiírásban az autók sorrendje tetszőleges lehet.
#-----------------------------------------------------------------------------
print('5.feladat')

#a 4. feladathoz hasonlóan indexelünk
auto_elso=[0]*10    #10 elemű lista, mert tíz autó van
for adatok in ceg:
    if auto_elso[int(adatok[2][-1])]==0:
        auto_elso[int(adatok[2][-1])]=int(adatok[4])
        
auto_utolso=[0]*10
for adatok in ceg2:
    if auto_utolso[int(adatok[2][-1])]==0:
        auto_utolso[int(adatok[2][-1])]=int(adatok[4])

for i in range(10):
    km=auto_utolso[i]-auto_elso[i]
    print('CEG30'+str(i)+' '+str(km)+' km')
#-----------------------------------------------------------------------------
# 6. Határozza meg, melyik személy volt az, aki az autó egy elvitele alatt a
#    leghosszabb távolságot tette meg! A személy azonosítóját és a megtett
#    kilométert a minta szerint írja a képernyőre!
#    (Több legnagyobb érték esetén bármelyiket kiírhatja.)
#-----------------------------------------------------------------------------
print('6.feladat')

ceg_rendezett=sorted(ceg,key=lambda auto: auto[2])
print(ceg_rendezett)
max_km=0

for i in range(1,len(ceg_rendezett)):
    #i-1. kivitel  i. visszahozatal ugyanaz az autó ugyanaz a személy,
    #rendezés miatt...
    #azt még nézni kell, hogy egyáltalán visszahozták-e?
    if ceg_rendezett[i][5]=='1':    #visszahozták
        megtett_ut=int(ceg_rendezett[i][4])-int(ceg_rendezett[i-1][4])
        if megtett_ut>max_km:
            max_km=megtett_ut
            az=ceg_rendezett[i][3]    #ez a személy azonosítója

print('Leghosszabb út: %d km, személy: %s' %(max_km,az))

#-----------------------------------------------------------------------------
# 7. Az autók esetén egy havi menetlevelet kell készíteni! Kérjen be a
#    felhasználótól egy rendszámot! Készítsen egy X_menetlevel.txt állományt,
#    amelybe elkészíti az adott rendszámú autó menetlevelét! (Az X helyére az
#    autó rendszáma kerüljön!) A fájlba soronként tabulátorral elválasztva a
#    személy azonosítóját, a kivitel időpontját (nap. óra:perc), a kilométer-
#    számláló állását, a visszahozatal időpontját (nap. óra:perc), és a kilo-
#    méterszámláló állását írja a minta szerint!
#    (A tabulátor karakter ASCII-kódja: 9.)
#-----------------------------------------------------------------------------
print('7.feladat')

rendszam=input('Rendszám: ')
fki=open(rendszam+'_menetlevel.txt','w')

for adatok in ceg_rendezett:
    if adatok[2]==rendszam:
        if adatok[5]=='0':
            #kivitel
            print(adatok[3]+'\t'+adatok[0].zfill(2).rjust(2)+'.\t'+adatok[1]+'\t'+adatok[4].zfill(5).rjust(5)+' km\t',end='',file=fki)
        else:
            #visszahozatal
            print(adatok[0].zfill(2).rjust(2)+'.\t'+adatok[1]+'\t'+adatok[4].zfill(5).rjust(5)+' km\t',file=fki)

fki.close()
print('Menetlevél kész!')











