結果

問題 No.3050 Prefix Removal
ユーザー rgnerdplayer
提出日時 2025-05-08 20:36:09
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 844 bytes
コンパイル時間 3,288 ms
コンパイル使用メモリ 279,640 KB
実行使用メモリ 14,804 KB
最終ジャッジ日時 2025-05-08 20:36:19
合計ジャッジ時間 9,494 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 53 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

using i64 = long long;

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);

    auto solve = [&]() {
        int n, k;
        cin >> n >> k;

        vector<int> a(n);
        vector<i64> b(n + 1);
        for (int i = 0; i < n; i++) {
            cin >> a[i];
            b[i + 1] = b[i] + a[i];
        }

        constexpr i64 inf = 1e18;
        i64 ans = -inf;

        priority_queue<i64> h;
        i64 sum = 0;

        for (int i = 1; i <= n; i++) {
            if (i >= k) {
                ans = max(ans, k * b[i] - sum);
            }
            h.push(b[i]);
            sum += b[i];
            if (h.size() == k) {
                sum -= h.top();
                h.pop();
            }
        }

        cout << ans << '\n';
    };
    
    solve();
    
    return 0;
}
0