Pagini recente » Cod sursa (job #981149) | Cod sursa (job #107620) | Cod sursa (job #375988) | Cod sursa (job #1110837) | Cod sursa (job #1226045)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
struct cell
{
int val;
bool operator < (const cell& A) const
{
return val < A.val;
}
};
const int NMAX=100005;
int n,k,a[NMAX];
priority_queue<cell>Q;
long long sol;
int main()
{
int i,j;
cell x;
fin>>k>>n;
for (i=1;i<=n;i++)
{
fin>>x.val;
if (x.val>0) Q.push(x);
}
while (Q.size()>=k)
{
sol++;
for (j=1;j<=k;j++)
{
x=Q.top();
a[++a[0]]=x.val;
Q.pop();
}
for (j=1;j<=k;j++)
{
x.val=a[a[0]--] - 1;
if (x.val>0) Q.push(x);
}
}
fout<<sol<<"\n";
return 0;
}