Ctrl K

Тройки равноудалённых точек

Средняя
На плоскости стоят маяки beacons, где beacons[i] = [x, y]; все точки различны. Назовём тройку маяков (a, b, c) равноудалённой, если a, b и c — три разных маяка и расстояние от a до b равно расстоянию от a до c. Порядок в тройке важен: (a, b, c) и (a, c, b) считаются разными тройками. Верните количество равноудалённых троек.
Пример 1
beacons=[[0, 0], [2, 0], [0, 2]] → 2

Маяки (2, 0) и (0, 2) оба на расстоянии 2 от (0, 0). Это даёт тройки ((0,0), (2,0), (0,2)) и ((0,0), (0,2), (2,0)). Других троек нет.

Пример 2
beacons=[[0, 0], [1, 0], [-1, 0], [0, 1]] → 8

Вокруг (0, 0) три маяка на расстоянии 1 — это 3·2 = 6 упорядоченных троек. Вокруг (0, 1) маяки (1, 0) и (-1, 0) оба на расстоянии √2 — ещё 2. Итого 8.

Пример 3
beacons=[[5, 5]] → 0

Один маяк — троек нет.

Ограничения
  • 1 ≤ len(beacons) ≤ 500
  • beacons[i].length == 2
  • -10⁴ ≤ x, y ≤ 10⁴
  • Все точки различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиВертикальная ось симметрии СредняяОтрезок с суммой, кратной делителю СредняяСколько гостей на конференции СредняяВолшебные блоки 3×3 СредняяСамый маленький загон Средняя
загружаем Python…
Вход
beacons=[[0, 0], [2, 0], [0, 2]]
Ожидается
2

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 105 тестов на сервере, включая скрытые.