Pagini recente » Cod sursa (job #1304168) | Cod sursa (job #2886409) | Cod sursa (job #558531) | Cod sursa (job #1069581) | Cod sursa (job #2733626)
#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;
}