C2. Передача энергии (усложнённая версия)
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Эта задача такая же как и предыдущая, но с большими ограничениями.

Воскресным утром, три друга Селена, Широ и Кэти решили отправится на прогулку к ближайшей электростанции (не повторяйте этого дома). Когда они туда пришли, кошки впечатлились огромной системой передачи энергии, состоящей из множества дымоходов, электрических полюсов и проводов. Будучи кошками, они сочли эти вещи просто гигантскими.

На входе на станцию висит карта, описывающая систему проводов электростанции. Селена лучше всего из друзей разбирается в математике. Он решил нарисовать карту на декартовой плоскости. Теперь каждый полюс это точка по координатам $$$(x_i, y_i)$$$. Так как все полюса различны, то различны и точки, представляющие их. Также каждые два полюса соединены друг с другом проводом, представляющим из себя бесконечную в обе стороны прямую на плоскости. В случае если более двух полюсов лежат на одной прямой, то они все соединены одним общим проводом.

Селена думает, что когда два различных электрических провода пересекаются, то между ними может возникать опасная интерференция. Поэтому он интересуется, сколько пар проводов пересекаются?

Входные данные

Первая строка содержит одно целое число $$$n$$$ ($$$2 \le n \le 1000$$$) — количество электрических полюсов.

Каждая из $$$n$$$ следующих строк содержит два целых числа $$$x_i$$$ и $$$y_i$$$ ($$$-10^4 \le x_i, y_i \le 10^4$$$) — координаты полюсов.

Гарантируется что все эти $$$n$$$ точек различны.

Выходные данные

Выведите одно целое число — количество пересекающихся пар проводов.

Примеры
Входные данные
4
0 0
1 1
0 3
1 2
Выходные данные
14
Входные данные
4
0 0
0 2
0 4
2 0
Выходные данные
6
Входные данные
3
-1 -1
1 0
3 1
Выходные данные
0
Примечание

В первом примере:

Во втором примере:

Обратите внимание, что три полюса $$$(0, 0)$$$, $$$(0, 2)$$$ и $$$(0, 4)$$$ соединены одним проводом.

В третьем примере: