AT_utpc2020_l Euclidean Distance Product
Description
[problemUrl]: https://atcoder.jp/contests/utpc2020/tasks/utpc2020_l
$ P $ を素数 $ 299993 $ とします。 $ xy $ 平面上に $ N $ 個の格子点が与えられます。 $ i $ 番目の格子点の座標は $ (x_i,y_i) $ です。 平面上の格子点 $ S $ の座標を $ (S_x,S_y) $ として、 整数 $ f(S) $ を次のように定めます。
$ f(S)=\displaystyle\ \prod_{1\leq\ i\leq\ N}\left((S_x\ -\ x_i)^2\ +\ (S_y\ -\ y_i)^2\ \right) $
整数 $ Z $ が与えられます。 $ x $ 座標、 $ y $ 座標がともに、 $ 0 $ 以上 $ P $ 未満の格子点 $ U $ であって、 $ f(U)\equiv\ Z\ \pmod\ P $ となるものの個数を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ Z $ $ x_1 $ $ y_1 $ $ x_2 $ $ y_2 $ $ \vdots $ $ x_N $ $ y_N $
Output Format
答えを $ 1 $ 行に出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数である。
- $ 1\ \leq\ N\ \leq\ 100 $
- $ 0\ \leq\ Z\ \lt\ P\ =\ 299993 $
- $ 0\ \leq\ x_i\ ,y_i\ \lt\ P\ =\ 299993 $
- $ i\neq\ j $ ならば、 $ (x_i,y_i)\neq(x_j,y_j) $
### Sample Explanation 1
例えば $ S\ =\ (12345,6789) $ のとき $ f(S)\ =\ (12345\ -\ 1)^2\ +\ (6789\ -\ 1)^2\ =\ 152374336\ +\ 46076944\ =\ 198451280 $ となります。 $ f(S)\ \equiv\ 1\ \pmod\ P $となる $ S $ は $ 299992 $ 個あります。