Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. counted = {}
  2.  
  3.  
  4. def scalar(v1, v2):
  5. return v1[0] * v2[0] + v1[1] * v2[1]
  6.  
  7.  
  8. def scalar_product(a, b, c):
  9. # a, b, c - координаты точек в формате (x, y)
  10. # вычислю координаты векторов
  11. # вектор a -> b
  12. k1 = tuple(sorted([coord.index(a), coord.index(b)]))
  13. if k1 in counted:
  14. Va_b = counted[k1]
  15. else:
  16. Va_b = [b[0] - a[0], b[1] - a[1]]
  17. counted[k1] = Va_b
  18. # вектор b -> c
  19.  
  20. k1 = tuple(sorted([coord.index(c), coord.index(b)]))
  21. if k1 in counted:
  22. Vb_c = counted[k1]
  23. else:
  24. Vb_c = [c[0] - b[0], c[1] - b[1]]
  25. counted[k1] = Vb_c
  26.  
  27. # вектор c -> a
  28. k1 = tuple(sorted([coord.index(a), coord.index(c)]))
  29. if tuple(k1) in counted:
  30. Vc_a = counted[tuple(k1)]
  31. else:
  32. Vc_a = [a[0] - c[0], a[1] - c[1]]
  33. counted[tuple(k1)] = Vc_a
  34.  
  35. return scalar(Va_b, Vb_c) * scalar(Va_b, Vc_a) * scalar(Vb_c, Vc_a) == 0
  36.  
  37.  
  38. n = int(input())
  39. coord = []
  40. for i in range(n):
  41. coord.append(list(map(int, input().split())))
  42.  
  43. ans = 0
  44. for i in range(n):
  45. for j in range(i + 1, n):
  46. for k in range(j + 1, n):
  47. if scalar_product(coord[i], coord[j], coord[k]):
  48. ans += 1
  49.  
  50. print(ans)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement