CF1163C2 Power Transmission (Hard Edition)

题目描述

本题与前一题相同,但数据范围更大。 某个星期天早晨,三位朋友 Selena、Shiro 和 Katie 决定去附近的发电站游玩(请勿模仿)。到达发电站后,这三只猫被由许多烟囱、电线杆和电线组成的大型输电系统所震撼。由于它们是猫,这些东西在它们眼中显得非常巨大。 在发电站入口处,有一张描述复杂布线系统的地图。Selena 是三位朋友中数学最好的。他决定将这张地图画在笛卡尔平面上。每根电线杆现在是平面上的一个点,坐标为 $ (x_i, y_i) $。由于每根电线杆都不同,所有代表这些电线杆的点都是不同的。此外,每两根电线杆之间都由一根电线相连。电线在平面上是一条无限延伸的直线。如果有多于两根电线杆共线,它们只通过一根公共电线相连。 Selena 认为,每当两根不同的电线相交时,可能会相互干扰并造成损坏。因此,他想知道,有多少对电线是相交的?你能帮他解决这个问题吗?

输入格式

第一行包含一个整数 $ n $($ 2 \le n \le 1000 $),表示电线杆的数量。 接下来的 $ n $ 行,每行包含两个整数 $ x_i, y_i $($ -10^4 \le x_i, y_i \le 10^4 $),表示每根电线杆的坐标。 保证所有 $ n $ 个点都是不同的。

输出格式

输出一个整数,表示有多少对电线是相交的。

说明/提示

在第一个样例中: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1163C2/2317b27306c4c65175012212cdceb02039be0972.png) 在第二个样例中: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1163C2/0792ee139dbdc603551bd0c872a1bea92551eac5.png) 注意,三根电线杆 $ (0, 0) $、$ (0, 2) $ 和 $ (0, 4) $ 由一根公共电线相连。 在第三个样例中: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1163C2/9e20f52f47cf7b9d491a8675d81506c0f862a971.png) 由 ChatGPT 4.1 翻译