nq1s788

27 A

Apr 18th, 2026
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.26 KB | None | 0 0
  1. #https://inf-ege.sdamgia.ru/problem?id=85703
  2. from math import dist
  3. data = open('27_B.txt').readlines()
  4. cluster = [[], [], []]
  5. for e in data:
  6.     x, y = map(float, e.replace(',', '.').split())
  7.     if y < 27:
  8.         cluster[0].append((x, y))
  9.     elif y < 34:
  10.         cluster[1].append((x, y))
  11.     else:
  12.         cluster[2].append((x, y))
  13. centroid = []
  14. for i in range(3):
  15.     best_c = (-1, -1)
  16.     best_rst = 100000000000
  17.     for c in cluster[i]:
  18.         rst = 0
  19.         for j in cluster[i]:
  20.             rst += dist(c, j)
  21.         if rst < best_rst:
  22.             best_rst = rst
  23.             best_c = c
  24.     centroid.append(best_c)
  25. if len(cluster[0]) > len(cluster[1]):
  26.     p1 = 0
  27.     for j in cluster[0] + cluster[1]: #склеиваем массивы с обоими кластерами, чтобы вообще все точки перебрать
  28.         if dist(centroid[0], j) <= 0.7:
  29.             p1 += 1
  30.     p2 = 0
  31.     for j in cluster[0] + cluster[1]:
  32.         if dist(centroid[1], j) >= 1.3:
  33.             p2 += 1
  34. else:
  35.     p1 = 0
  36.     for j in cluster[0] + cluster[1]:
  37.         if dist(centroid[1], j) <= 0.7:
  38.             p1 += 1
  39.     p2 = 0
  40.     for j in cluster[0] + cluster[1]:
  41.         if dist(centroid[0], j) >= 1.3:
  42.             p2 += 1
  43. print(p1, p2)
  44.  
Advertisement
Add Comment
Please, Sign In to add comment