Cod sursa(job #7649)
Utilizator | Data | 21 ianuarie 2007 20:53:46 | |
---|---|---|---|
Problema | Grupuri | Scor | 76 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <stdio.h>
#define MAX 100001
#include <math.h>
int n, k, a[MAX];
long Solve(int n, long sum, int k)
{
if (n < 0 || k <= 0) return 0;
if (a[n] <= sum / (long)k) return sum / (long)k;
return Solve(n-1, sum-a[n], k-1);
}
int main()
{
int i;
long sum = 0;
freopen("grupuri.in", "r", stdin);
freopen("grupuri.out", "w", stdout);
scanf("%d %d", &k, &n);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
sum += (long)a[i];
}
printf("%ld\n", Solve(n-1, sum, k));
return 0;
}