atcoder#ABC168E. [ABC168E] ∙ (Bullet)

[ABC168E] ∙ (Bullet)

配点: 500500

問題文

NN 匹のイワシが釣れました。ii 匹目のイワシの美味しさは AiA_i、香り高さは BiB_i です。

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

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

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

制約

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

入力

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

NN

A1A_1 B1B_1

::

ANA_N BNB_N

出力

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

3
1 2
-1 1
2 -1
5

条件を満たす選び方は以下の 55 通りです。

  • 11 匹目
  • 1,21, 2 匹目
  • 22 匹目
  • 2,32, 3 匹目
  • 33 匹目
10
3 2
3 2
-1 1
2 -1
-3 -9
-8 12
7 7
8 1
8 2
8 4
479