Cod sursa(job #1226045)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 4 septembrie 2014 14:16:14
Problema Grupuri Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#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;
}