제출 #1133443

#제출 시각아이디문제언어결과실행 시간메모리
1133443FZ_LaabidiStove (JOI18_stove)C++20
100 / 100
30 ms2240 KiB
#include <bits/stdc++.h>//
#define int long long
using namespace std;

signed main() {

    int n, k; cin >> n >>k;
    vector <int> v(n), gaps;
    for(int i = 0; i < n; i++)cin >> v[i];
    sort(v.begin(), v.end());
    if (n==k)
        cout << k<< endl;
    else if (k==1)
        cout << v[n-1]-v[0]+1 << endl;
    else{
        int cur = 0;
        for (int i=1; i<n; i++) {
            if (v[i]-v[i-1]>1)
                gaps.push_back( v[i] - v[i-1]);
        }
        int l = gaps.size();
        sort(gaps.begin(), gaps.end());
        int tofil = l-k+1;
            if (l+1 > k)
            {

                for (int i=0; i<tofil; i++) {
                    cur+=gaps[i];
                    cur--;
                }
            }
            cout <<n+cur << endl;
        }
    }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...