class Loves:
    """egylovessorozat osztalya"""

    def __init__(self, ver, sor):
        self.ver = ver  # versenyzo rajtszama
        self.sor = sor  # lovessorozat
        self.hossz = len(self.sor)  # lovessorozat hossza

    def ket_vagy_tobb_talalt(self):
        """van-e legalabb ket egymas utani talalat"""
        if '++' in self.sor:
            return True
        else:
            return False

    def talalt_lovesek(self):
        """talalt lovesek sorszama"""
        return [str(i + 1) for i in range(self.hossz) if self.sor[i] == '+']

    def talalt_lovesek_kiir(self):
        """talalt lovesek kiratasa"""
        return ' '.join(self.talalt_lovesek())

    def talalatok_szama(self):
        """talalt lovesek szama"""
        return self.sor.count('+')

    def leghosszabb_hibatlan_sorozat(self):
        """leghosszabb hibatlan sorozat"""
        jo = 0
        for i in range(1, self.hossz + 1):
            if "+" * i in self.sor:
                jo = i
        return jo

    # 4. feladat
    def loertek(self):
        """lovessorozat ponterteke"""
        aktpont = 20
        ertek = 0
        for i in range(0, self.hossz):
            if aktpont > 0 and self.sor[i] == '-':
                aktpont -= 1
            else:
                ertek += aktpont
        return ertek


class Verseny:
    """lovessorozatokbol allo verseny osztalya"""

    def __init__(self, lovesek=None):
        if lovesek is None:
            lovesek = []
        self.lovesek = lovesek

    def tobbszor_talalok(self):
        """azok a lovesek, ahol egymas utan ket vagy tobb talalat van"""
        return [loves for loves in self.lovesek if loves.ket_vagy_tobb_talalt()]

    def tobbszor_talalok_kiir(self):
        """azok a lovesek, ahol egymas utan ket vagy tobb talalat van kiir"""
        sz = ''
        for l in self.tobbszor_talalok():
            sz += str(l.ver) + ' '
        return sz

    def legtobb_lovest_leadok(self):
        """a legtobb lovest leado lovesek"""
        return [loves for loves in self.lovesek if loves.hossz == max(loves.hossz for loves in self.lovesek)]

    def legtobb_lovest_leadok_kiir(self):
        """a legtobb lovest leado lovesek kiir"""
        sz = ''
        for l in self.legtobb_lovest_leadok():
            sz += str(l.ver) + ' '
        return sz

    def loves(self, rajtszam):
        """egy rajtaszamhoz tartozo loves"""
        return self.lovesek[rajtszam - 1]

    def sorrend(self):
        return sorted(self.lovesek, key=lambda x: x.loertek(), reverse=True)

    def sorrend_kiir(self):
        sz = ''
        helyezes = 1
        index = 1
        sorrend = self.sorrend()
        elozo = sorrend[0].loertek()
        for loves in sorrend:
            if loves.loertek() < elozo:
                helyezes += 1
                sz += str(index) + ' ' + str(loves.ver) + ' ' + str(loves.loertek()) + '\n'
            else:
                sz += str(helyezes) + ' ' + str(loves.ver) + ' ' + str(loves.loertek()) + '\n'
            elozo = loves.loertek()
            index += 1
        return sz


class Fajl:
    """Fajlmuveletek osztalya"""

    def __init__(self, fnev):
        self.fnev = fnev

    def beolvas(self):
        """fajl adatainak beolvasasa"""
        f = open(self.fnev)
        db = int(f.readline())
        lovesek = []
        i = 1
        for sor in f.readlines():
            lovesek.append(Loves(i, sor.strip()))
            i += 1
        return lovesek

    def kiir(self, adatok):
        """fajlba iras"""
        f = open(self.fnev, 'w')
        print(adatok, end='', file=f)
        f.close()


# 1. feladat
be = Fajl('verseny.txt')
lovesek = be.beolvas()
verseny = Verseny(lovesek)

# 2. feladat
print("2. feladat:\nAz egymast kovetoen tobbszor talalo versenyzok:", verseny.tobbszor_talalok_kiir())

# 3. feladat
print("3. feladat:\nA legtobb lovest leado versenyzo rajtszama:", verseny.legtobb_lovest_leadok_kiir())

# 5. feladat
rajtszam = int(input("5. feladat:\nAdjon meg egy rajtszamot! "))
lovese = verseny.loves(rajtszam)
print("5a. feladat: Celt ero lovesek:", lovese.talalt_lovesek_kiir())
print("5b. feladat: Az eltalalt korongok szama:", lovese.talalatok_szama())
print("5c. feladat: A leghosszabb hibatlan sorozat hossza:", lovese.leghosszabb_hibatlan_sorozat())
print("5d. feladat: A versenyzo pontszama:", lovese.loertek())

# 6. feladat
# print(verseny.sorrend_kiir())
ki = Fajl('sorrendOOP.txt')
ki.kiir(verseny.sorrend_kiir())
