# 1 feladat
def beolvas():
    kraterek = []
    with open('felszin_tpont.txt') as be:
        for sor in be.readlines():
            x, y, r, n = sor.split('\t')
            kraterek.append([float(x), float(y), float(r), n.strip()])
    return kraterek

# 2. feladat
def feladat2(kraterek):
    print(f"2. feladat\nA kráterek száma: {len(kraterek)}")


# 3. feladat
def feladat3(kraterek):
    nev = input("3. feladat\nKérem egy kráter nevét: ")
    krater = [k for k in kraterek if k[-1] == nev]
    if len(krater):
        print(f"A(z) {nev} középpontja X={krater[0][0]}"
                                  f" Y={krater[0][1]}"
                                  f" sugara R={krater[0][2]}.")
    else:
        print("Nincs ilyen kráter.")


# 4. feladat
def feladat4(kraterek):
    legnagyobb = max(k[2] for k in kraterek)
    print("4. feladat")
    for x, y, r, n in kraterek:
        if r == legnagyobb:
            print(f"A legnagyobb kráter neve és sugara:  {n} {r}")

# 5. feladat
def tavolsag(x1, y1, x2, y2) -> float:
    return ((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) ** 0.5

# 6. feladat
def feladat6(kraterek):
    nev = input("4. feladat\nKérem egy kráter nevét: ")
    k1 = [k for k in kraterek if k[-1] == nev]
    jo = []
    if len(k1) > 0:
        x1, y1, r1 = k1[0][0], k1[0][1], k1[0][2]
        for x2, y2, r2, n2 in kraterek:
            if tavolsag(x1, y1, x2, y2) > r1 + r2:
                jo.append(n2)
    print("Nincs közös része: " + ", ".join(jo) + ".")

# 7. feladat
def feladat7(kraterek):
    for x1, y1, r1, n1 in kraterek:
        for x2, y2, r2, n2 in kraterek:
            if r1 > r2 and tavolsag(x1, y1, x2, y2) < r1 - r2:
                print(f"A(z) {n1} kráter tartalmazza a(z) {n2} krátert.")

# 8. feladat
def feladat8(kraterek):
    with open('terulet.txt', 'w') as ki:
        for x, y, r, n in kraterek:
            print(f"{r*r*3.14:.2f}\t{n}", file=ki)


kraterek = beolvas()
feladat2(kraterek)
feladat3(kraterek)
feladat4(kraterek)
feladat6(kraterek)
feladat7(kraterek)
feladat8(kraterek)
