Submission #1332210

#TimeUsernameProblemLanguageResultExecution timeMemory
1332210nijatStove (JOI18_stove)C++20
100 / 100
28 ms5832 KiB
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>

using namespace std;
//using namespace __gnu_pbds;

#define int long long
#define ld long double
#define endl '\n'
#define S second
#define F first
#define pb push_back
#define all(x) x.begin(), x.end()

//typedef tree<int,
//            null_type,
//            less<int>,
//            rb_tree_tag,
//            tree_order_statistics_node_update> indexed_set;

const int N =  2e5 + 5;
const int sz = 2e8 + 5;
const int mod = 1e9 + 7;
const int INF = 1e18;

int a[N];
void solve()
{
    int n, k, ans = 0;
    cin >> n >> k;
    for (int i = 1; i <= n; i ++) {
        cin >> a[i];
    }
    ans += a[n] + 1 - a[1];
    multiset<int> st;
    for (int i = 1; i < n; i ++) {
        st.insert(a[i] + 1 - a[i + 1]);
    }
    for (int i = 1; i < k; i ++) {
        ans += *st.begin();
        st.erase(st.begin());
    }
    cout << ans << endl;


}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int T = 1;
//    cin >> T;
    while (T --)
    {
        solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...