結果
問題 |
No.3123 Inversion
|
ユーザー |
|
提出日時 | 2025-04-19 08:36:13 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,029 bytes |
コンパイル時間 | 660 ms |
コンパイル使用メモリ | 82,880 KB |
実行使用メモリ | 562,016 KB |
最終ジャッジ日時 | 2025-04-19 08:37:30 |
合計ジャッジ時間 | 74,481 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | MLE * 1 |
other | MLE * 21 |
ソースコード
#90度で一致: 2 a #対角線で反転して一致かつ点対称: 2 b #そうでなく、対角線で(ry:4 c-b #そうでなく、点対称:4 d-b-a #のこり 8 p-c-d+b # a:90度で一致 # b:対角線で反転して一致+点対称 # c:対角線で反転して一致 # d:点対称 X=6000000 T,MOD=map(int,input().split()) a=[1,1,0,0] for i in range(4,X): ch=i-2 if i%2==1: ch-=1 a.append(a[i-4]*ch%MOD) b=[1,1,2,2] for i in range(4,X): ch=i-2 if i%2==1: ch-=1 b.append(b[i-4]*ch%MOD) b[-1]+=b[i-2]*2 b[-1]%=MOD c=[1,1] for i in range(2,X): c.append((c[i-2]*(i-1)+c[i-1])%MOD) for i in range(X): c[i]=(c[i]*2-b[i])%MOD d=[1,1] for i in range(2,X): ch=i if i%2==1: ch-=1 d.append((d[i-2]*ch)%MOD) p=[1] for i in range(1,X): p.append(p[i-1]*i%MOD) for _ in range(T): N=int(input()) if N==1: print(1) continue two=a[N]+b[N] four=c[N]-b[N]+d[N]-b[N]-a[N] eight=p[N]-two-four print((two*2+four*4+eight*8)%MOD)