Ограничения: время – 3s/6s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Роман достаточно давно занимается в математическом кружке, поэтому он уже успел узнать не только
правила выполнения простейших операций, но и о таком достаточно сложном понятии как симметрия. Чтобы получше изучить симметрию, Роман решил начать с наиболее простых геометрических фигур – треугольников.
Он скоро понял, что осевой симметрией обладают так называемые равнобедренные треугольники.
Напомним, что треугольник называется равнобедренным, если его площадь не нулевая, и у него есть хотя бы две равные стороны.
Недавно Роман, зайдя в класс, увидел, что на доске нарисовано `n` точек. Разумеется, он сразу задумался,
сколько существует троек из этих точек, которые являются вершинами равнобедренных треугольников.
Требуется написать программу, котрая ответит на вопрос, интересующий Романа.
Формат входных данных
Входной файл содержит в первой строке целое число `n` (`3\ ≤\ n\ ≤\ 1500`). Каждая из последующих строк содержит по два разделенных пробелом
целых числа – `x_i` и `y_i` , определяющих координаты `i`-ой точки. Все координаты точек не превосходят `10^9` по абсолютной величине.
Среди заданных точек нет совпадающих.
Формат выходных данных
В выходной файл необходимо вывести одно целое число – количество троек из заданных точек, которые являются вершинами равнобедренных треугольников.
Примеры входных и выходных данных
input.txt
4
0 0
1 1
1 0
0 1
Источник: региональный этап Всероссийской олимпиады по информатике 2008/2009, http://neerc.ifmo.ru/school/