Source Code
#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
using namespace std;
#define		_Narutoo ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define		all(a) a.begin(), a.end()
#define		rall(a) a.rbegin(), a.rend()
#define		endl "\n"
#define		ll long long
#define		uniquee(v) v.resize(unique(v.begin(),v.end())-v.begin())
ll      	OO = 1073741824;
ll gcd(ll x, ll y) { return(!y ? x : gcd(y, x%y)); }
ll lcm(ll x, ll y) { return x / gcd(x, y)*y; }
void File() {
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
}
int main()
{
	_Narutoo;
	File();
	ll t = 1;
	//cin >> t;
	while (t--)
	{
		ll n, k,cnt,res;
		cin >> n >> k;
		vector <ll>v(n);
		for (auto&it : v)cin >> it;
		sort(all(v));
		cnt = v[--k];
		res = cnt;
		for (int i = k; i >= 0; i--)
		{
			//cout << cnt << endl;
			if (cnt < v[i])
			{
				res += (v[i] - cnt);
				cnt = v[i];
			}
			cnt--;
		}
		cout << res << endl;
	}
}
Copy
Cutting Trees ZyadBahaa
GNU G++17
17 ms
1.7 MB
Accepted