#include <string>
#include <vector>
#include <iostream>
#include <queue>
using namespace std;
 
long long solution(int n, vector<int> works) 
{
    long long answer = 0;
    
    priority_queue<int> pq;
    
    for(int i = 0; i < works.size(); i++)
    {
        pq.push(works[i]);
    }
    
    for(int i = 1; i <= n; i++)
    {
        int value = pq.top();
        pq.pop();
        
        if(value == 0)
        {
            break;
        }
        
        value--;
        pq.push(value);
    }
    
    for(int i = 0; i < works.size(); i++)
    {
        long long value = pq.top();
        pq.pop();
        
        answer += value * value;
    }
    
    return answer;
}
cs

+ Recent posts