結果

問題 No.2693 Sword
ユーザー navel_tos
提出日時 2024-03-22 23:02:40
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 105 ms / 2,000 ms
コード長 508 bytes
コンパイル時間 265 ms
コンパイル使用メモリ 82,244 KB
実行使用メモリ 76,784 KB
最終ジャッジ日時 2024-09-30 12:23:00
合計ジャッジ時間 2,604 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 29
権限があれば一括ダウンロードができます

ソースコード

diff #

#yukicoder423C Sword

N, P, K = map(int, input().split())
DP = [P] + [0] * K
for _ in range(N):
    t, b = map(int, input().split())
    nDP = [0] * (K + 1)
    for k in range(K + 1):
        if DP[k] == 0: continue
        nDP[k] = max(nDP[k], DP[k])
        if k == K: continue
        if t == 1:
            nDP[k + 1] = max(nDP[k + 1], DP[k] + b)
        if t == 2:
            nDP[k + 1] = max(nDP[k + 1], DP[k] * 2)
    DP, nDP = nDP, DP
    if DP[K] > 10 ** 18:
        exit( print(-1) )
print(DP[K])
0