結果

問題 No.2378 Cards and Subsequences
ユーザー yamate11yamate11
提出日時 2023-06-13 21:05:15
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 653 ms / 2,000 ms
コード長 941 bytes
コンパイル時間 295 ms
コンパイル使用メモリ 87,068 KB
実行使用メモリ 141,580 KB
最終ジャッジ日時 2023-09-28 21:39:20
合計ジャッジ時間 19,398 ms
ジャッジサーバーID
(参考情報)
judge15 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 69 ms
71,232 KB
testcase_01 AC 70 ms
71,320 KB
testcase_02 AC 72 ms
71,300 KB
testcase_03 AC 116 ms
77,540 KB
testcase_04 AC 126 ms
78,068 KB
testcase_05 AC 118 ms
78,104 KB
testcase_06 AC 233 ms
82,360 KB
testcase_07 AC 165 ms
85,380 KB
testcase_08 AC 176 ms
85,696 KB
testcase_09 AC 190 ms
88,528 KB
testcase_10 AC 131 ms
79,244 KB
testcase_11 AC 515 ms
139,720 KB
testcase_12 AC 509 ms
139,596 KB
testcase_13 AC 523 ms
139,676 KB
testcase_14 AC 533 ms
139,792 KB
testcase_15 AC 521 ms
139,532 KB
testcase_16 AC 653 ms
139,592 KB
testcase_17 AC 632 ms
140,744 KB
testcase_18 AC 562 ms
139,836 KB
testcase_19 AC 575 ms
139,612 KB
testcase_20 AC 555 ms
139,692 KB
testcase_21 AC 508 ms
140,152 KB
testcase_22 AC 502 ms
140,488 KB
testcase_23 AC 493 ms
140,124 KB
testcase_24 AC 532 ms
139,116 KB
testcase_25 AC 523 ms
139,360 KB
testcase_26 AC 578 ms
140,696 KB
testcase_27 AC 549 ms
140,244 KB
testcase_28 AC 568 ms
140,452 KB
testcase_29 AC 543 ms
141,356 KB
testcase_30 AC 651 ms
141,580 KB
testcase_31 AC 509 ms
140,232 KB
testcase_32 AC 348 ms
138,028 KB
testcase_33 AC 500 ms
140,096 KB
testcase_34 AC 529 ms
140,328 KB
testcase_35 AC 571 ms
140,572 KB
testcase_36 AC 556 ms
139,836 KB
testcase_37 AC 152 ms
81,044 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#!/usr/bin/env pypy3

import sys

def debug(*msg):
    print(*msg, file=sys.stderr)

def intdec(x):
    return int(x) - 1

N, M, K = map(int, input().strip().split())
S = list(map(intdec, input().strip().split()))
A = list(map(int, input().strip().split()))
B = list(map(int, input().strip().split()))

rec = [-1 for _ in range(M + 1)]
prev = [0 for _ in range(N)]
for i in range(N):
    prev[i] = rec[S[i]]
    rec[S[i]] = i
debug(prev)

primeB = 998244353

acc = [[0 for k in range(K + 1)] for n in range(N + 1)]
acc[0][0] = 1
for i in range(N):
    acc[i + 1] = acc[i][:]
    for k in range(K + 1):
        exc = 0 if prev[i] < 0 else acc[prev[i]][k]
        v = (acc[i][k] - exc) % primeB
        a1 = k + A[S[i]]
        if a1 <= K:
            acc[i + 1][a1] = (acc[i + 1][a1] + v) % primeB
        b1 = k + B[S[i]]
        if b1 <= K:
            acc[i + 1][b1] = (acc[i + 1][b1] + v) % primeB
    debug(acc[i + 1])

print(acc[N][K])
0