Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int main()
- {
- map<ll, ll> myArr;
- ll n, temp, k, totalSum = 0;
- cin >> n >> k;
- for (ll i = 0; i < n; i++)
- {
- cin >> temp;
- myArr[temp]++;
- }
- auto iter = myArr.rbegin();
- for (iter; iter != myArr.rend(); iter++)
- {
- if ((iter)->first == 0)
- {
- break;
- }
- if (k > (iter)->second)
- {
- totalSum += (iter)->second * (iter)->first;
- k -= (iter)->second;
- }
- else if (k <= (iter)->second)
- {
- totalSum += k * (iter)->first;
- k = (iter)->second - k;
- break;
- }
- myArr[(iter)->first - 1] += (iter)->second;
- // cout << (iter)->first << " " << (iter)->second << "\n";
- }
- cout << totalSum;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement