結果
問題 | No.2693 Sword |
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
#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])