結果

問題 No.3062 Rotate and Maximize
ユーザー ゼット
提出日時 2025-03-14 22:56:24
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 757 bytes
コンパイル時間 440 ms
コンパイル使用メモリ 82,036 KB
実行使用メモリ 76,944 KB
最終ジャッジ日時 2025-03-14 22:56:31
合計ジャッジ時間 6,647 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 23 WA * 28
権限があれば一括ダウンロードができます

ソースコード

diff #

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
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)
0