2. Классы подобия треугольников

Не решаласьСредняя

Вам дан набор из nn треугольников (1n10000001 \leq n \leq 1\:000\:000). Каждый треугольник задается тремя целыми числами - длинами его сторон. Длины сторон - положительные целые числа, не превосходящие 10910^9. Некоторые пары треугольников подобны. В силу свойств подобия известно, что все эти треугольники распадаются на несколько классов, в каждом из которых все треугольники подобны друг другу. К примеру, три треугольника со сторонами (6,6,10)(6, 6, 10), (15,25,15)(15, 25, 15), (35,21,21)(35, 21, 21) все попарно подобны друг другу, то есть образуют один класс. Необходимо найти количество классов подобия, на которые распадаются данные nn треугольников.

Сложность алгоритма должна в среднем линейно зависеть от nn (может еще зависеть от ограничений на стороны треугольника). Т.е. никаких сортировок длинных массивов в решении делать нельзя.

Формат ввода

В первой строке входа дано число nn. В каждой из следующих nn строк - по три целых числа, задающих стороны очередного треугольника.

Формат вывода

Выведите число классов подобия.

Ограничения

Ограничение времени

2 с

Ограничение памяти

512 МБ

Пример 1

Ввод
3
6 6 10
15 25 15
35 21 21
Вывод
1

Пример 2

Ввод
4
3 4 5
10 11 12
6 7 8
6 8 10
Вывод
3

Теги

Нужно войти, чтобы отправить решение.Войти