def kiir(ssz, szoveg):
    print('{}. feladat - {}'.format(ssz, szoveg))


# --------------------------------------------------------------------
# 1. Olvassa be és tárolja a veetel.txt fájl tartalmát!
# --------------------------------------------------------------------
kiir(1, 'Fájl beolvasása')

# napok: 1-11
# rádiósok: 1-20
# uzenetek:  90 karakter hosszú, # nem egyértelmű jel, $ üzenet már nincs
#           1/2 kezdet pl. 1 felnőtt és 2 kölyök példányt figyeltek meg

fv = open('veetel.txt', 'r')
adatok = []  # mátrix: [nap, rádiós, uezenet] "kis" lista az eleme
N = 1  # páros vagy páratlan sor jön-e
db = 0  # mátrix elemeinek száma
akt_sor = []  # "kis" lista készítéséhez: [nap,rádiós,üzenet]
for adat in fv:
    if N % 2 == 1:  # páratlan sor
        # nap és rádiós jön
        akt_sor = adat.strip().split()  # "szétkapjuk" listába
        akt_sor = [int(akt_sor[0]), int(akt_sor[1])]
    else:
        db += 1  # páros sor: azaz üzenet jön, itt növelem a nagy mátrix elemszámát
        akt_sor.append(adat.rstrip())  # rstrip() - jobbról "lecsapjuk" a '\n'-t!
        adatok.append(akt_sor)  # "kis" lista megy a mátrixba
        akt_sor = []  # ürítjük a változót a következő lépéshez
    N += 1  # N-t is növeljük, de ezt lehetne más megoldással is...

fv.close()

# --------------------------------------------------------------------
# 2. Írja a képernyőre, hogy melyik rádióamatőr rögzítette az
#    állományban szereplő első és melyik az utolsó üzenetet!
# --------------------------------------------------------------------
kiir(2, 'Első és utolsó üzenet a forrásállományban')

print('Az első üzenet rögzítője: ', adatok[0][1])
print('Az utolsó üzenet rögzítője: ', adatok[db - 1][1])

# --------------------------------------------------------------------
# 3. Adja meg az összes olyan feljegyzés napját és a rádióamatőr
#    sorszámát, amelynek szövegében a „farkas” karaktersorozat
#    szerepel!
# --------------------------------------------------------------------
kiir(3, '"farkas" a szövegben')

s = 'farkas'
for adat in adatok:
    if adat[2].find(s) > -1:
        print('{}. nap {}. rádióamatőr'.format(adat[0], adat[1]))

# --------------------------------------------------------------------
# 4. Készítsen statisztikát, amely megadja, hogy melyik napon hány
#    rádióamatőr készített feljegyzést. Azok a napok 0 értékkel
#    szerepeljenek, amikor nem született feljegyzés! Az eredmény a
#    képernyőn jelenjen meg a napok sorszáma szerint növekvően!
#    A megjelenítést a feladat végén látható minta szerint alakítsa ki!
# --------------------------------------------------------------------
kiir(4, 'Statisztika')
napok = [0] * 11  # 11 nap lehet, ebben összesítjük a napi üzenetek számát

for adat in adatok:
    napok[adat[0] - 1] += 1  # indexelés az adat[0]-val, az az a nappal
    # a -1 a szokásos okok miatt kell (indexek 0-tól...)

for nap in range(11):
    print('{}. nap: {} rádióamatőr'.format(nap + 1, napok[nap]))

# --------------------------------------------------------------------
# 5. A rögzített üzenetek alapján kísérelje meg helyreállítani az
#    expedíció által küldött üzenetet! Készítse el az adaas.txt fájlt,
#    amely napok szerinti sorrendben tartalmazza a küldött üzeneteket!
#    Ha egy időpontban senkinél nem volt vétel, akkor azon a ponton
#    a # jel szerepeljen! (Feltételezheti, hogy az azonos üzenethez
#    tartozó feljegyzések között nincs ellentmondás.)
# --------------------------------------------------------------------
kiir(5, 'Üzenetek helyreállítása')

fv = open('adaas.txt', 'w')
alap = ['#'] * 90  # 90 # jelből álló lista
alap = ''.join(alap)  # átlakítva szöveggé: '######....' (90 karakter hosszú)

uj = [alap] * 11  # a fentiekből 11 helyreállított üzenet lesz

for adat in adatok:
    nap = adat[0] - 1  # a napot használom az uj lista indexeléséhez
    szoveg = list(adat[2])  # az uzenet listává alakítása, hogy betűnként kezelhessük
    uj2 = list(uj[nap])  # mint az előző sor
    for i in range(len(szoveg)):
        if szoveg[i] != '#':  # ha az uzenetben nem # jel van, akkor
            uj2[i] = szoveg[i]  # az mehet az ujba
    uj[nap] = ''.join(uj2)  # szöveggé alakítom a listát

for i in range(11):
    print(str(i + 1) + '. nap: ', uj[i])
    print(uj[i], file=fv)

fv.close()

# --------------------------------------------------------------------
# 6. Készítsen függvényt szame néven az alábbi algoritmus alapján!
#    A függvény egy karaktersorozathoz hozzárendeli az igaz vagy a
#    hamis értéket. A függvény elkészítésekor az algoritmusban
#    megadott változóneveket használja! Az elkészített függvényt
#    a következő feladat megoldásánál felhasználhatja.
#
#    Függvény szame(szo:karaktersorozat): logikai
#       valasz:=igaz
#       Ciklus i:=1-től hossz(szo)-ig
#          ha szo[i]<'0' vagy szo[i]>'9' akkor valasz:=hamis
#       Ciklus vége
#       szame:=valasz
#    Függvény vége
# --------------------------------------------------------------------
kiir(6, 'Függvény készítése...')


def szame(szo):  # a függvény "egy az egyben" a mondatszerű leírás alapján készült
    valasz = True
    for i in range(len(szo)):
        if szo[i] < '0' or szo[i] > '9':
            valasz = False
    return valasz


# --------------------------------------------------------------------
# 7. Olvassa be egy nap és egy rádióamatőr sorszámát, majd írja a
#    képernyőre a megfigyelt egyedek számát (a kifejlett és kölyök
#    egyedek számának összegét)! Ha nem volt ilyen feljegyzés,
#    a „Nincs ilyen feljegyzés” szöveget jelenítse meg! Ha nem volt
#    megfigyelt egyed vagy számuk nem állapítható meg, a
#    „Nincs információ” szöveget jelenítse meg! Amennyiben egy
#    számot közvetlenül # jel követ, akkor a számot tekintse nem
#    megállapíthatónak!
# --------------------------------------------------------------------
nap = int(input('Adja meg a nap sorszámát! '))
radios = int(input('Adja meg a rádióamatőr sorszámát! '))

# keressük meg az adott napot és rádióst
i = 0
while i < db and not (adatok[i][0] == nap and adatok[i][1] == radios):
    i += 1

if i < db:  # ha megtaláltuk az adott napot és rádióst, akkor
    p = adatok[i][2].find('/')  # az üzenet elején / jelet keresünk
    felnott = adatok[i][2][0:p]  # / jel előtt a felnőtt egyed száma LEHET!
    p2 = adatok[i][2].find(' ')  # / jel után, szóközig a kölykök száma LEHET!
    kolyok = adatok[i][2][p + 1:p2]
    if szame(felnott) and szame(kolyok):  # de tényleg számokról van szó?
        print('A megfigyelt egyedek száma: ', int(felnott) + int(kolyok))
    else:
        print('Nincs információ!')
else:
    print('Nincs ilyen feljegyzés!')