結果
| 問題 | No.2668 Trees on Graph Paper |
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2026-07-16 00:35:52 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 943 ms / 3,000 ms |
| + 684µs | |
| コード長 | 597 bytes |
| 記録 | |
| コンパイル時間 | 231 ms |
| コンパイル使用メモリ | 96,004 KB |
| 実行使用メモリ | 84,224 KB |
| 最終ジャッジ日時 | 2026-07-16 00:36:10 |
| 合計ジャッジ時間 | 13,541 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 33 |
ソースコード
N, MOD = map(int, input().split())
dp = [0]*3
dp[0] = 1
ndp = [0]*3
ans = 1
for i in range(N*2):
for j in range(3): ndp[j] = 0
for j in range(3):
if dp[j] == 0: continue
for k in range(3):
if j == 2 and k == 0: continue
if j <= k:
ndp[k] += dp[j]
ndp[k] %= MOD
else:
ndp[k] += dp[j]*(i+1)%MOD
ndp[k] %= MOD
dp, ndp = ndp, dp
if 1 <= i+1 <= N*2-3 and i%2 == 0:
ans *= dp[2]
ans %= MOD
for i in range(1, N*2):
ans *= i
ans %= MOD
print(ans)
detteiuu