#P15873. [Roi2023 Team]Streets of Flatland平面国街道
[Roi2023 Team]Streets of Flatland平面国街道
题目描述
Flatland 是平面上的一个国家,有 座城市,由 条双向道路连接成一棵树。第 座城市位于点 。
国家要给每条道路命名,为了节约资源,希望不同名字数量尽可能少。若若干道路组成一条简单路径,且对路径上任意相邻两条道路 与 ,有向道路对 与 兼容,且反向的 与 也兼容,则这些道路可以使用同一个名字。这样的同名路径称为一条高速路。
兼容性的定义:对于有向道路 与 ,若从向量 绕点 旋转到向量 的过程中,不会遇到从 出发的其它道路,则称它们兼容。若某条道路方向与旋转过程中的向量共线,则它被视作唯一兼容对象。

求把所有道路划分为若干条高速路所需的最少不同名字数。
输入格式
第一行输入整数 ,表示城市数,。
接下来 行,第 行输入两个整数 ,表示第 座城市坐标,满足 ,且不存在两座城市坐标相同。
接下来 行,每行两个整数 ,表示一条道路。保证这些道路构成一棵树。
保证从同一座城市出发的任意两条道路不共线;但道路对应的线段在平面上可以相交。
输出格式
输出一个整数,表示最少高速路数量。
样例
输入
5
0 0
2 4
3 -1
0 -2
-4 -3
1 2
1 3
1 4
1 5
输出
2
输入
5
0 0
2 4
3 -1
0 -2
0 3
1 2
1 3
1 4
1 5
输出
3