Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.31 KB | None | 0 0
  1. import math
  2.  
  3.  
  4. class Point:
  5.     def __init__(self, x, y):
  6.         self.x = x
  7.         self.y = y
  8.  
  9.     def show_info(self):
  10.         return f"{self.x};{self.y}"
  11.  
  12.  
  13. class Segment:
  14.     def __init__(self, point_1: Point, point_2: Point):
  15.         self.point_1 = point_1
  16.         self.point_2 = point_2
  17.         self.distance = self.calc_distance()
  18.  
  19.  
  20.     def calc_distance(self):
  21.         side_a = abs(self.point_1.x - self.point_2.x)
  22.         side_b = abs(self.point_1.y - self.point_2.y)
  23.         side_c = math.sqrt(side_a ** 2 + side_b ** 2)
  24.         return side_c
  25.  
  26.     def show_info(self):
  27.         return f"{self.distance:.3f}\n({self.point_1.x}, {self.point_1.y})\n({self.point_2.x}, {self.point_2.y})"
  28.  
  29.  
  30. def create_point(x, y):
  31.     point = Point(x, y)
  32.     return point
  33.  
  34.  
  35. n = int(input())
  36. points_list = []
  37.  
  38. for row in range(n):
  39.     x, y = [int(num) for num in input().split()]
  40.     point = create_point(x, y)
  41.     points_list.append(point)
  42.  
  43. segment_list = []
  44.  
  45. for index_1 in range(len(points_list)):
  46.     for index_2 in range(index_1 + 1, len(points_list)):
  47.           segment = Segment(points_list[index_1], points_list[index_2])
  48.           segment_list.append(segment)
  49.  
  50.  
  51. for segment in sorted(segment_list, key=lambda s: s.distance):
  52.     print(segment.show_info())
  53.     break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement