luogu#P7918. [Kubic] Lines

[Kubic] Lines

题目背景

建议先看 C 题题目背景。

题目描述

平面直角坐标系中有 nn 条直线,任意三条直线不交于一点且没有两条直线重合。显然这些直线形成了不超过 n(n1)2\dfrac{n(n-1)}{2}交点。你可以从这些直线中选出一部分,一个点被覆盖当且仅当有至少一条被选中的直线经过了它。求最少选出多少条直线才能覆盖所有交点

输入格式

第一行,一个整数 nn

接下来 nn 行,每行有三个整数 a,b,ca,b,c,表示一条解析式为 ax+by+c=0ax+by+c=0 的直线。

注意:输入数据不保证 gcd(a,b)=1\gcd(a,b)=1

输出格式

共一行,一个整数,表示答案。

3
1 2 3
4 5 6
7 8 10
2

提示

对于 100%100\% 的数据,1n105,a,b,c109,a,b1\le n\le 10^5,|a|,|b|,|c|\le 10^9,a,b 不全为 00

分值 nn 特殊性质
Subtask1\operatorname{Subtask}1 1010 20\le 20
Subtask2\operatorname{Subtask}2 3030 100\le 100
Subtask3\operatorname{Subtask}3 1010 无特殊限制 ab=0ab=0
Subtask4\operatorname{Subtask}4 5050

样例解释

一种方法是选出 x+2y+3=0x+2y+3=04x+5y+6=04x+5y+6=0 两条线。

可以证明没有更优的方案。