結果
問題 |
No.3062 Rotate and Maximize
|
ユーザー |
![]() |
提出日時 | 2025-03-14 22:58:46 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 775 bytes |
コンパイル時間 | 545 ms |
コンパイル使用メモリ | 82,232 KB |
実行使用メモリ | 77,688 KB |
最終ジャッジ日時 | 2025-03-14 22:58:58 |
合計ジャッジ時間 | 5,607 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 RE * 2 |
other | AC * 13 WA * 21 RE * 17 |
ソースコード
N=int(input()) A=list(map(int,input().split())) mod=998244353 v=[0]*(N+1) for i in range(N): x=A[i] v[x]+=1 B=[0]*(N+1) for x in range(1,N+1): if v[x]<v[x-1]: print(0) exit() B[x]=v[x]-sum(B[:x]) u=[1]*(N+1) u2=[1]*(N+1) for i in range(1,N+1): u[i]=u[i-1]*i u[i]%=mod u2[i]=pow(u[i],-1,mod) def ncm(x,y): ans=u[x]*u2[y] ans%=mod ans*=u2[x-y] ans%=mod return ans p=[0]*(N+1) C=B[:] w=1 c=0 t=0 p=[1] print(p[1]) for k in range(1,N+1): if C[k]==0: continue if c==0: c=C[k] t=k else: b=C[k] w*=ncm(b+c-1,c-1) w%=mod c+=C[k] result=w for k in range(1,N+1): if v[k]==0: continue if k==t: result*=u[v[k]-1] result%=mod else: result*=u[v[k]] result%=mod result*=N result%=mod print(result)