Submission #1267593

#TimeUsernameProblemLanguageResultExecution timeMemory
1267593kutomei3Stove (JOI18_stove)C++20
100 / 100
22 ms3512 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main() {
    int n, k;
    scanf("%lld %lld", &n, &k);

    vector<int> vec(n);
    for (int i = 0; i < n; i++) {
        scanf("%lld", &vec[i]);
    }

    priority_queue<pair<int, int>> pq;
    for (int i = 0; i < n - 1; i++) {
        pq.push({vec[i + 1] - vec[i], i});
    }

    vector<int> sts(n, 1);
    for (int i = 0; i < k - 1; i++) {
        sts[pq.top().second] = 0;
        pq.pop();
    }

    int l = vec[0];
    int sum = 0;
    for (int i = 0; i < n - 1; i++) {
        if (!sts[i]) {
            sum += vec[i] - l + 1;
            l = vec[i + 1];
        }
    }
    
    printf("%lld", sum + (sts[n - 1] ? vec[n - 1] - l + 1 : 0));
    // cout << '\n';
    // for (auto& p : sts) cout << p << ' ';

    return 0;
}

/*
1 3 6
2 3

*/

Compilation message (stderr)

stove.cpp: In function 'int main()':
stove.cpp:8:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    8 |     scanf("%lld %lld", &n, &k);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~
stove.cpp:12:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |         scanf("%lld", &vec[i]);
      |         ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...