結果

問題 No.2783 4-33 Easy
ユーザー ID 21712
提出日時 2025-04-15 17:33:46
言語 Go
(1.23.4)
結果
AC  
実行時間 24 ms / 2,000 ms
コード長 781 bytes
コンパイル時間 13,931 ms
コンパイル使用メモリ 246,664 KB
実行使用メモリ 7,844 KB
最終ジャッジ日時 2025-04-15 17:34:02
合計ジャッジ時間 13,783 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import . "fmt"

func main() {
	var n int
	Scan(&n)
	a := make([]int, n)
	for i := range a {
		Scan(&a[i])
	}
	b := make([]int, n)
	x := make([]bool, n)
	for i := range b {
		var s string
		Scan(&s)
		Sscan(s, &b[i])
		x[i] =  Sprint(b[i]) != s
	}
	dp := make([][][]int, 9+1)
	for i := range dp {
		dp[i] = make([][]int, 4+1)
		for j := range dp[i] {
			dp[i][j] = make([]int, 33+1)
		}
	}
	for i, xv := range x {
		if !xv || b[i] != 0 {
			continue
		}
		dp[1][a[i]][b[i]]++
	}
	const MOD = 998244353
	for p, av := range a {
		if x[p] {
			continue
		}
		bv := b[p]
		for i := 8; i >= 1; i-- {
			for j := 0; av+j <= 4; j++ {
				for k := 0; bv+k <= 33; k++ {
					dp[i+1][av+j][bv+k] = (dp[i+1][av+j][bv+k]+dp[i][j][k])%MOD
				}
			}
		}
	}
	Println(dp[9][4][33])
}
0