defreadData(): print("Input data:") n = int(sys.stdin.readline().strip())
circles = [] for _ inrange(n): parts = list(map(int, sys.stdin.readline().split())) iflen(parts) == 3: xi, yi, ri = parts circles.append((xi, yi, ri))
print("\nInput f(t):") f = sys.stdin.readline().strip()
if f.count("*") > 50: print("f(t) contains too many multiplications.") sys.exit(1)
print("\nInput g(t):") g = sys.stdin.readline().strip()
if g.count("*") > 50: print("g(t) contains too many multiplications.") sys.exit(1)
return circles, f, g
defgeneratePoints(f, g): points = []
for t inrange(51): x = eval(f, {"t": t}) y = eval(g, {"t": t}) points.append((x, y))
return points
defmain(): circles, f, g = readData()
points = generatePoints(f, g)
print("\nGenerated points:") for t, (x, y) inenumerate(points): print(f"t={t}: ({x}, {y})")
for t, (x, y) inenumerate(points): ifnot (-10**9 <= x <= 10**9and -10**9 <= y <= 10**9): print(f"Point at t={t} ({x}, {y}) is out of bounds.") sys.exit(1)
valid_circles = [False] * len(circles)
print("\nCircles containing points:") for i, (xi, yi, ri) inenumerate(circles): for t, (x, y) inenumerate(points): if (x - xi) ** 2 + (y - yi) ** 2 <= ri**2: valid_circles[i] = True print( f"Circle {i} contains point at t={t} ({points[t][0]}, {points[t][1]}), dis: {((x - xi) ** 2 + (y - yi) ** 2) ** 0.5:.2f}" )
print("\nResult:") for i, valid inenumerate(valid_circles): ifnot valid: print(f"Circle {i} does not contain any points.")
ifall(valid_circles): print("All circles contain at least one point.")