atcoder#AGC036F. [AGC036F] Square Constraints

[AGC036F] Square Constraints

配点 : 18001800

問題文

整数 NN が与えられます。 (0,1,,2N1)(0,1,\cdots,2N-1) の順列 (P0,P1,,P2N1)(P_0,P_1,\cdots,P_{2N-1}) であって、次の条件を満たすものの個数を求めてください。 ただし、答えは非常に大きくなることがあるので、MM で割ったあまりを求めてください。

  • 条件: すべての i (0i2N1)i\ (0 \leq i \leq 2N-1) について、N2i2+Pi2(2N)2N^2 \leq i^2+P_i^2 \leq (2N)^2 が成り立つ。

制約

  • 1N2501 \leq N \leq 250
  • 2M1092 \leq M \leq 10^9
  • 入力される値はすべて整数である。

入力

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

NN MM

出力

条件を満たす順列の数を MM で割ったあまりを出力せよ。

2 998244353
4

条件を満たす順列は、以下の 44 つです。

  • (2,3,0,1)(2,3,0,1)
  • (2,3,1,0)(2,3,1,0)
  • (3,2,0,1)(3,2,0,1)
  • (3,2,1,0)(3,2,1,0)
10 998244353
53999264
200 998244353
112633322