Pagini recente » Cod sursa (job #3271939) | Cod sursa (job #2905630) | Cod sursa (job #2122127) | Cod sursa (job #1499298) | Cod sursa (job #589108)
Cod sursa(job #589108)
#include <iostream>
#include <cstdio>
#define Infinit 1000000000
using namespace std;
long N, K, CS[1000001], A[100001], AMax;
long long NGrupuri;
void Read ()
{
FILE *fin = fopen ("grupuri.in", "r");
long i;
fscanf (fin, "%ld%ld", &K, &N);
for (i=0; i<N; i++)
{
fscanf (fin, "%ld", &A[i]);
if (A[i]>AMax)
{
AMax=A[i];
}
}
fclose (fin);
}
void Type ()
{
FILE *fout = fopen ("grupuri.out", "w");
fprintf (fout, "%lld\n", NGrupuri);
fclose (fout);
}
void CountingSort ()
{
long i, j;
for (i=0; i<=AMax; i++)
{
CS[i]=0;
}
for (i=0; i<N; i++)
{
CS[A[i]]++;
}
N=0;
for (i=1; i<=AMax; i++)
{
for (j=0; j<CS[i]; j++)
{
A[N++]=i;
}
}
}
int main ()
{
long i;
Read ();
while (N>=K)
{
CountingSort ();
AMax=A[0];
for (i=0; i<K; i++)
{
A[i]--;
}
NGrupuri++;
}
Type ();
return 0;
}