Submission #498289

#TimeUsernameProblemLanguageResultExecution timeMemory
498289OrazBStove (JOI18_stove)C++14
100 / 100
29 ms4528 KiB
#include <bits/stdc++.h>
#define N 100005
#define ll long long int
#define pii pair <long long, long long>
#define pb push_back
#define ff first
#define ss second
using namespace std;

ll n, k, ans, a[N], m[N];
vector <pii> v;

int main ()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> n >> k;
	if (n == 1) return cout << 1, 0;
	for (int i = 1; i <= n; i++) cin >> a[i];
	sort(a + 1, a + n + 1);
	for (int i = 1; i < n; i++) v.pb({a[i + 1] - a[i], i});
	sort(v.begin(), v.end());
	reverse(v.begin(), v.end());
	for (int i = 0; i < k - 1; i++) m[v[i].ss] = 1;
	for (int i = 2; i <= n; i++){
		if (i == 2){
			if (m[i - 1]) ans += 2;
			else ans += a[i] - a[i - 1] + 1;
			continue;
		}
		if (m[i - 1]) ans++;
		else ans += a[i] - a[i - 1];
	}
	cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...