class Kerekit:
    def __init__(self, szam):
        self.szam = szam

    def kerekites5re(self):
        return ((self.szam + 2) // 5) * 5

    def kerekites10re(self):
        return ((self.szam + 9) // 10) * 10


class Jarat:
    def __init__(self, jegydb, uthossz, egysegar):
        self.jegydb = jegydb
        self.jegyuthossz = uthossz
        self.egysegar = egysegar


class Jegy:
    jarat = Jarat

    def __init__(self, utas, ules, fel, le):
        self.utas = utas
        self.ules = ules
        self.fel = fel
        self.le = le
        self.tav = self.le - self.fel  # megtett távolság

    def vegig(self):
        """vegig utazta-e az utat"""
        return [False, True][jarat.jegyuthossz == self.tav]

    def jegyar(self):
        """a jegy ara"""
        tavolsag = Kerekit(self.tav).kerekites10re()
        penz = tavolsag // 10 * jarat.egysegar
        return Kerekit(penz).kerekites5re()


class Utazasok:
    jarat = Jarat

    def __init__(self, jegyek=None):
        if jegyek is None:
            jegyek = []
        self.jegyek = jegyek

    def utolso(self):
        """az utolso vasarlo jegye"""
        return self.jegyek[-1]

    def vegig(self):
        """akik vegig utaztak a teljes tavolsagot"""
        return [jegy for jegy in self.jegyek if jegy.vegig()]

    def vegig_kiir(self):
        """akik vegig utaztak a teljes tavolsagot kiir"""
        sz = ''
        for jegy in self.vegig():
            sz += str(jegy.utas) + ' '
        return sz

    def bevetel(self):
        """jegyekbol szarmazo bevetel"""
        return sum(jegy.jegyar() for jegy in self.jegyek)

    def utolso_megallo(self):
        """utolso megallo"""
        megallok = []
        for jegy in self.jegyek:
            if jegy.fel != 0 and jegy.le != jarat.jegyuthossz:
                megallok.extend([jegy.fel, jegy.le])
        return max(megallok)

    def megallok_szama(self):
        """megallok szama"""
        megallok = []
        for jegy in self.jegyek:
            if jegy.fel != 0 and jegy.le != jarat.jegyuthossz:
                megallok.extend([jegy.fel, jegy.le])
        return len(set(megallok))

    def utolso_megallo_fel(self):
        """utolso megalloban felszallok szama"""
        return sum(1 for jegy in self.jegyek if jegy.fel == self.utolso_megallo())

    def utolso_megallo_le(self):
        """utolso megalloban leszallok szama"""
        return sum(1 for jegy in self.jegyek if jegy.le == self.utolso_megallo())

    def utaslista_kiir(self, ut_egy_pontja):
        sz = ''
        for i in range(1, 49):
            utassorszam = None
            for jegy in self.jegyek:
                if jegy.fel <= ut_egy_pontja < jegy.le and jegy.ules == i:
                    utassorszam = jegy.utas
            if utassorszam:
                sz += str(i) + '. ülés: ' + str(utassorszam) + '. utas\n'

            else:
                sz += str(i) + '. ülés: üres\n'
        return sz


class Fajl:
    """Fajlmuveletek osztalya"""

    def __init__(self, fnev):
        self.fnev = fnev

    def beolvas(self):
        """fajl adatainak beolvasasa"""
        f = open(self.fnev)
        jegyek = []
        utas = 1
        adat = f.readline().split()
        jarat = Jarat(int(adat[0]), int(adat[1]), int(adat[2]))
        for sor in f.readlines():
            ules, fel, le = sor.split()
            jegyek.append(Jegy(utas, int(ules), int(fel), int(le)))
            utas += 1
        return jarat, jegyek

    def kiir(self, adatok):
        """fajlba iras"""
        f = open(self.fnev, 'w', encoding='utf-8')
        print(adatok, end='', file=f)
        f.close()


# 1. feladat
fajl = Fajl("eladott.txt")
adatok = fajl.beolvas()
jarat = adatok[0]
utazasok = Utazasok(adatok[-1])

# 2. feladat
print("2. feladat:\nA legutolsó vásárló ülése: ", utazasok.utolso().ules, ", a megtett távolság: ",
      utazasok.utolso().tav, sep='')

# 3. feladat
print("3. feladat:\nAkik végig utazták a teljes utat:")
print(utazasok.vegig_kiir())

# 4. feladat
print("4. feladat\nA teljes bevétel:", utazasok.bevetel(), "Ft volt.")

# 5. feladat
print("5. feladat\nA leszálló utasok száma: ", utazasok.utolso_megallo_le(),
      ", felszálló utasok száma: ", utazasok.utolso_megallo_fel(), sep="")

# 6. feladat
print("6. feladat\nA megállók száma:", utazasok.megallok_szama())

# 7. feladat
ut_egy_pontja = int(input("7. feladat: Add meg az út egy pontját: "))
file = Fajl("kiholOOP.txt")
file.kiir(utazasok.utaslista_kiir(ut_egy_pontja))
