AT_jag2018summer_day2_f Point Sequences
题目描述
Takahashi 君每年都会为 Aoki 君准备整数序列作为生日礼物。今年,他决定赠送一组平面上的点序列。
首先,他生成了三个点序列:$(a_0, a_1, \ldots, a_{N-1})$,$(b_0, b_1, \ldots, b_{N-1})$,和 $(c_0, c_1, \ldots, c_{N-1})$,还生成了一个初始点 $d_0$。然后,按以下方法依次生成点 $d_1, d_2, \ldots, d_N$:
- 对于每一个 $i = 0, 1, \ldots, N-1$,$d_{i+1}$ 被定义为通过点 $a_i$ 和 $b_i$ 的直线与通过点 $c_i$ 和 $d_i$ 的直线的交点。
然而,可能存在某些情形,使得点 $d_{i+1}$ 无法定义。比如,当两条线重合时,交点无穷多。
Takahashi 君想确定最小的 $i$,使得 $d_{i+1}$ 无法定义。具体来说,在下列条件下,$d_{i+1}$ 无法被定义:
- $c_i$ 与 $d_i$ 是同一个点
- 由 $a_i, b_i, c_i$ 和 $d_i$ 确定的两条直线相同或平行
题目保证对于所有 $i$,$a_i$ 和 $b_i$ 是不同的点。
在接下来的描述中,点 $p$ 的 $x$ 坐标和 $y$ 坐标分别表示为 $p.x$ 和 $p.y$。
输入格式
输入为标准输入,格式如下:
> $N$ $d_0.x$ $d_0.y$ $a_0.x$ $a_0.y$ $b_0.x$ $b_0.y$ $c_0.x$ $c_0.y$ $a_1.x$ $a_1.y$ $b_1.x$ $b_1.y$ $c_1.x$ $c_1.y$ $ \ldots $ $a_{N-1}.x$ $a_{N-1}.y$ $b_{N-1}.x$ $b_{N-1}.y$ $c_{N-1}.x$ $c_{N-1}.y$
输出格式
输出最小的 $i$ 使得 $d_{i+1}$ 无法定义。如果所有点都可以被定义,则输出 $N$。
说明/提示
- $1 \leq N \leq 100,000$
- 点的坐标范围:$|a_i.x|, |a_i.y|, |b_i.x|, |b_i.y|, |c_i.x|, |c_i.y| \leq 1,000$
- 初始点 $d_0$ 的坐标范围:$|d_0.x|, |d_0.y| \leq 1,000$
- 保证所有 $i$ 均有 $a_i \neq b_i$
- 输入值全为整数。
**本翻译由 AI 自动生成**