Submission #1242317

#TimeUsernameProblemLanguageResultExecution timeMemory
1242317vanhppStove (JOI18_stove)C++20
100 / 100
44 ms5176 KiB
#include <bits/stdc++.h> #define ll long long #define fi first #define se second #define endl "\n" #define pq priority_queue using namespace std; const ll MAXN = 100005; ll n, k; vector<pair<ll, ll>> pa; vector<pair<ll, ll>> nw; vector<pair<ll, ll>> inter() { nw.clear(); nw.push_back(pa[0]); for (int i = 1; i < n; i++) { ll st = pa[i].fi; ll ed = pa[i].se; ll& led = nw.back().se; if (st <= led) { led = max(led, ed); } else { nw.push_back({st, ed}); } } return nw; } int main() { cin >> n >> k; for (int i = 1; i <= n; i++) { ll x; cin >> x; pa.push_back({x, x + 1}); } sort(pa.begin(), pa.end()); inter(); ll m = nw.size(); ll tong = 0; for (auto x : nw) { tong += x.se - x.fi; } if (m <= k) { cout << tong; return 0; } vector<ll> gap; for (int i = 1; i < m; i++) { gap.push_back(nw[i].fi - nw[i - 1].se); } sort(gap.begin(), gap.end()); for (int i = 0; i < m - k; i++) { tong += gap[i]; } cout << tong; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...