Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #https://inf-ege.sdamgia.ru/problem?id=85703
- from math import dist
- data = open('27_B.txt').readlines()
- cluster = [[], [], []]
- for e in data:
- x, y = map(float, e.replace(',', '.').split())
- if y < 27:
- cluster[0].append((x, y))
- elif y < 34:
- cluster[1].append((x, y))
- else:
- cluster[2].append((x, y))
- centroid = []
- for i in range(3):
- best_c = (-1, -1)
- best_rst = 100000000000
- for c in cluster[i]:
- rst = 0
- for j in cluster[i]:
- rst += dist(c, j)
- if rst < best_rst:
- best_rst = rst
- best_c = c
- centroid.append(best_c)
- if len(cluster[0]) > len(cluster[1]):
- p1 = 0
- for j in cluster[0] + cluster[1]: #склеиваем массивы с обоими кластерами, чтобы вообще все точки перебрать
- if dist(centroid[0], j) <= 0.7:
- p1 += 1
- p2 = 0
- for j in cluster[0] + cluster[1]:
- if dist(centroid[1], j) >= 1.3:
- p2 += 1
- else:
- p1 = 0
- for j in cluster[0] + cluster[1]:
- if dist(centroid[1], j) <= 0.7:
- p1 += 1
- p2 = 0
- for j in cluster[0] + cluster[1]:
- if dist(centroid[0], j) >= 1.3:
- p2 += 1
- print(p1, p2)
Advertisement
Add Comment
Please, Sign In to add comment