atcoder#ABC168E. [ABC168E] ∙ (Bullet)

[ABC168E] ∙ (Bullet)

题目描述

N N 匹のイワシが釣れました。i i 匹目のイワシの美味しさは Ai A_i 、香り高さは Bi B_i です。

この中から 1 1 匹以上のイワシを選んで同じクーラーボックスに入れますが、互いに仲が悪い 2 2 匹を同時に選ぶことはできません。

i i 匹目と j ( i) j\ (\neq\ i) 匹目のイワシは、Ai  Aj + Bi  Bj = 0 A_i\ \cdot\ A_j\ +\ B_i\ \cdot\ B_j\ =\ 0 を満たすとき(また、その時に限り)仲が悪いです。

イワシの選び方は何通りあるでしょう?答えは非常に大きくなる可能性があるので、1000000007 1000000007 で割ったあまりを出力してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 B1 B_1 : : AN A_N BN B_N

输出格式

答えを 1000000007 1000000007 で割ったあまりを出力せよ。

题目大意

题目描述

 你钓到了N N 条沙丁鱼,第 i i 条沙丁鱼有一个美味程度 Ai A_i 和香味程度 Bi B_i
 因为吃不完这么多,所以需要把其中一条以上的沙丁鱼放进冰箱。不幸的是,由于它们之间有的关系不好,所以死了之后放在一起也会打架。

  • 定义两条鱼 (i,j)(i,j) 之间的关系不好为:当且仅当 Ai  Aj + Bi  Bj = 0 A_i\ \cdot\ A_j\ +\ B_i\ \cdot\ B_j\ =\ 0

为了不让它们打架,请输出可能的方案数,答案对 1e9+7 1e9+7 取模。

3
1 2
-1 1
2 -1
5
10
3 2
3 2
-1 1
2 -1
-3 -9
-8 12
7 7
8 1
8 2
8 4
479

提示

制約

  • 入力はすべて整数
  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1018  Ai, Bi  1018 -10^{18}\ \leq\ A_i,\ B_i\ \leq\ 10^{18}

Sample Explanation 1

条件を満たす選び方は以下の 5 5 通りです。 - 1 1 匹目 - 1, 2 1,\ 2 匹目 - 2 2 匹目 - 2, 3 2,\ 3 匹目 - 3 3 匹目