Submission #169054

#TimeUsernameProblemLanguageResultExecution timeMemory
169054salil03Stove (JOI18_stove)C++14
100 / 100
27 ms3064 KiB
//OPTIMIZATIONS
#pragma GCC optimize("O3")
//(UNCOMMENT WHEN HAVING LOTS OF RECURSIONS)
//#pragma comment(linker, "/stack:200000000")
//(UNCOMMENT WHEN NEEDED)
//#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,tune=native")
//OPTIMIZATIONS
#include <bits/stdc++.h>
typedef long long ll;
typedef unsigned long long uu;
typedef long long int lll;
typedef unsigned long long int uuu;
using namespace std;

#define watch(x) cerr << "\n" \
					  << (#x) << " is " << (x) << endl
#define cel(x, y) 1 + ((x - 1) / y)
const double PI = 3.141592653589793238463;
const int MOD = 1000000007;
const int INF = 0x3f3f3f3f;

/*
$alil03

URL: url

Solution Begins here
*/

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	ll n, k;
	cin >> n >> k;
	k--;
	ll arr[n] = {};
	for (int i = 0; i < n; i++)
	{
		cin >> arr[i];
	}
	ll diff[n - 1] = {0};
	for (int i = 0; i < n - 1; i++)
	{
		diff[i] = arr[i + 1] - arr[i] - 1;
	}
	sort(diff, diff + n - 1);
	ll time = arr[n - 1] + 1 - arr[0];
	for (int i = n - 2; i >= 0 && k > 0; i--)
	{
		time -= diff[i];
		k--;
	}
	cout << time;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...