#aBC168E. [ABC168E] ∙ (Bullet)

[ABC168E] ∙ (Bullet)

AT_abc168_e [ABC168E] ∙ (Bullet)

题目描述

NN 条沙丁鱼被钓上来了。第 ii 条沙丁鱼的美味度为 AiA_i,香气度为 BiB_i

现在要从中选择至少 11 条沙丁鱼放入同一个冷藏箱,但不能同时选择两条互相不和的沙丁鱼。

当且仅当第 ii 条和第 jj 条沙丁鱼满足 AiAj+BiBj=0A_i \cdot A_j + B_i \cdot B_j = 0iji \neq j 时,这两条沙丁鱼互相不和。

请问有多少种选择沙丁鱼的方法?由于答案可能非常大,请输出对 10000000071000000007 取模的结果。

输入格式

输入以如下格式从标准输入给出。

NN
A1A_1 B1B_1
A2A_2 B2B_2
\vdots
ANA_N BNB_N

输出格式

输出对 10000000071000000007 取模的答案。

输入输出样例 #1

输入 #1

3
1 2
-1 1
2 -1

输出 #1

5

输入输出样例 #2

输入 #2

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

输出 #2

479

说明/提示

限制条件

  • 输入均为整数。
  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1018Ai,Bi1018-10^{18} \leq A_i, B_i \leq 10^{18}

样例解释 1

满足条件的选法共有 55 种:

  • 只选第 11
  • 选第 11 条和第 22
  • 只选第 22
  • 选第 22 条和第 33
  • 只选第 33

由 ChatGPT 4.1 翻译