#P1803. 三文鱼

三文鱼

题目描述

你在一次出海时掉到了 nn 条三文鱼,但是你一次没办法吃完他们,所以需要存放至少一条的三文鱼到冰箱。但是近些年海水核污染严重,一些三文鱼如果放在一起,会发生一些奇妙的变化导致他们诈尸。对于任意一条三文鱼来说,它有一个美味值 XiX_i ,一个污染程度 YiY_i ,当两条鱼 (i,j)(i,j) 出现 Xi×Xj+Yi×Yj=0X_i \times X_j + Y_i \times Y_j = 0 时,他们会发生诈尸现象。你不希望诈尸的现象发生在你家的冰箱里,于是需要谨慎考虑放置的方案,请输出可能的方案数,答案对 1e9+71e9+7 取模。

输入格式

第一行输入一个整数 nn

接下来 nn 行,每行输入两个整数 xi,yix_i,y_i

输出格式

输出可能的方案数,答案对 1e9+71e9+7 取模。

样例 #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

提示

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1018  Xi, Yi  1018 -10^{18}\ \leq\ X_i,\ Y_i\ \leq\ 10^{18}