451просмотров
68.6%от подписчиков
13 марта 2026 г.
statsScore: 496
27 27637 (1 вариант апробации)
from math import dist data = [list(map(float, i.strip().replace(',', '.').split())) for i in open('27_B_27637.txt')] def getCluster(p0, max_distance): cluster = [p0] data.remove(p0) for p in cluster: sosed = [s for s in data if dist(p,s) < max_distance] cluster += sosed for s in sosed: data.remove(s) return cluster clusters = []
while data: clusters.append(getCluster(data[0], 1)) print(len(clusters)) from turtle import screensize(1500,1500)
tracer(0)
scale = 10
up()
colors = ["red", "green", "blue"]
for number, cluster in enumerate(clusters): for x, y in cluster: goto(x scale, y * scale) dot(3, colors[number])
done() def getCenter(cl): minSum = 10**10 for p0 in cl: sum_dist = sum(dist(p0, p) for p in cl) if sum_dist < minSum: minSum = sum_dist center = p0 return center centers = [getCenter(cluster) for cluster in clusters] L = [len(c) for c in clusters]
L1 = sorted(L)
middle = L.index(L1[1])
greatest = L.index(L[0]) print(L)
B1 = len([p for p in clusters[middle] if dist(p, centers[middle]) <= 1.6 and p != centers[middle]])
B2 = max([dist(p, centers[greatest]) for p in clusters[greatest]])
print(B1, int(B2*10000))