Cod sursa(job #2733626)

Utilizator keluIon Ionel kelu Data 30 martie 2021 17:32:59
Problema Grupuri Scor 64
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

#define TEST 0

#if TEST
ifstream cin("test.in");
ofstream cout("test.out");
#else
ifstream cin("grupuri.in");
ofstream cout("grupuri.out");
#endif

int main()
{
    int k,n;
    cin>>k>>n;

    vector<int> animals(n,0);

    for(int i=0;i<n;i++)
    {
        cin>>animals[i];
    }

    priority_queue<int> pq(less<int>(), animals);

    vector<int> grup(k,0);
    int cnt=0;
    int err=0;
    while(!err)
    {
        int minn=1000000;
        for(int i=0;i<k;i++)
        {    
            int top = pq.top();pq.pop();
            if (top==0)
            {
                err=1; break;
            }
            grup[i]=top;
            minn=min(top,minn);
        }
        minn=max(pq.top(), minn);
        if (!err)
        {
            for(int i=0;i<k;i++)
            {
                pq.push(grup[i]-minn);
            }
            cnt+=minn;
        }
    }

    cout<<cnt;
    
    return 0;
}