結果

問題 No.2783 4-33 Easy
ユーザー 👑 p-adic
提出日時 2024-06-10 19:36:34
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 306 ms / 2,000 ms
コード長 560 bytes
コンパイル時間 148 ms
コンパイル使用メモリ 12,544 KB
実行使用メモリ 11,008 KB
最終ジャッジ日時 2024-06-14 20:49:56
合計ジャッジ時間 9,425 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #

I,R=input,range
D=[1]+[0]*1529
X=[0]*170
Y=[0]*5
N=I()
for A,B in zip(map(int,I().split()),I().split()):
	if"A"<B:Y[A]+=1
	elif'A'>B[-1]:X[A+5*int(B)]+=1
P=998244353
J=[0,1]
for g in R(2,34):J+=[P-P//g*J[P%g]]
C=[]
for i in R(170):
	C+=[[1]]
	for g in R(1,34):C[i]+=[C[i][-1]*(X[i]-g+1)*J[g]%P]
for e in R(5):
	for f in R(34):
		for a in R(4,-1,-1):
			for b in R(33,-1,-1):
				for n in R(8,-1,-1):
					for g in R(1,min(a//e if e else n,b//f if f else n,n)+1):t=a+45*b+5*n;D[t]=(D[t]+D[t-(e+45*f+5)*g]*C[e+5*f][g])%P
print(sum(D[1529-y]*Y[y]for y in R(5))%P)
0