結果
問題 | No.2356 Back Door Tour in Four Seasons |
ユーザー | とりゐ |
提出日時 | 2023-06-16 22:56:56 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 233 ms / 2,000 ms |
コード長 | 681 bytes |
コンパイル時間 | 169 ms |
コンパイル使用メモリ | 82,224 KB |
実行使用メモリ | 93,008 KB |
最終ジャッジ日時 | 2024-06-24 15:56:32 |
合計ジャッジ時間 | 6,797 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 28 |
ソースコード
mod=998244353 n=int(input()) inv=pow(n-1,mod-2,mod) U=[] F=[] W=[] P=[] for _ in range(n): s,a=input().split() a=int(a) if s=='U': U.append(a) if s=='F': F.append(a) if s=='W': W.append(a) if s=='P': P.append(a) X=n-1 Y=n-2 m=10**5+10 powX=[1]*m powY=[1]*m powinv=[1]*m for i in range(1,m): powX[i]=powX[i-1]*X%mod powY[i]=powY[i-1]*Y%mod powinv[i]=powinv[i-1]*inv%mod u=0 for i in U: u+=(powX[i]-powY[i])*powinv[i]%mod u%=mod f=0 for i in F: f+=(powX[i]-powY[i])*powinv[i]%mod f%=mod w=0 for i in W: w+=(powX[i]-powY[i])*powinv[i]%mod w%=mod sm=sum(U)+sum(F)+sum(W)+sum(P) ans=u*f*w*pow(n-1,sm,mod)%mod ans*=len(P) print(ans%mod)