結果

問題 No.3683 サーバー代がもったいない!
コンテスト
ユーザー 👑 loop0919
提出日時 2026-07-14 23:16:25
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 124 ms / 2,000 ms
+ 470µs
コード長 536 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 233 ms
コンパイル使用メモリ 96,064 KB
実行使用メモリ 94,080 KB
最終ジャッジ日時 2026-09-05 12:39:40
合計ジャッジ時間 5,509 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 27
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

INF = 2 * 10**18
inf = 10**18

def f(is_deleted, times):
    return 2 * times + is_deleted


N, K = [int(s) for s in input().split()]
A = [int(s) for s in input().split()]

dp = [-INF] * (2 * (K + 1))
dp[f(0, 0)] = 0

for a in A:
    ndp = [-INF] * (2 * (K + 1))

    for k in range(K + 1):
        ndp[f(0, k)] = max(ndp[f(0, k)], dp[f(0, k)], dp[f(1, k)])
        if k >= 1:
            ndp[f(1, k)] = max(ndp[f(1, k)], dp[f(0, k - 1)] + a)

    dp = ndp

ans = max(dp[f(0, k)], dp[f(1, k)])
print(ans if ans > -inf else "Impossible")
0