Pagini recente » Cod sursa (job #2255664) | Cod sursa (job #430564) | Monitorul de evaluare | Cod sursa (job #2465737) | Cod sursa (job #1501920)
#include <cstdio>
#include <algorithm>
#define DIM 100010
using namespace std;
int K, N, Vector[DIM];
long long sum;
bool verif (int cGroups)
{
long long value = 0;
for (int i = 1; i <= N; i ++)
value += min(Vector[i], cGroups);
if (value >= cGroups * K - 1)
return 1;
else
return 0;
}
int main ()
{
freopen ("grupuri.in" ,"r", stdin );
freopen ("grupuri.out","w", stdout);
scanf ("%d %d", &K, &N);
for (int i = 1; i <= N; i ++)
{
scanf ("%d", &Vector[i]);
sum += Vector[i];
}
sum /= K;
int st = 0, dr = sum, mid;
while (st <= dr)
{
mid = st + ((dr - st) >> 1);
if (verif (mid))
st = mid + 1;
else
dr = mid - 1;
}
printf ("%d\n", dr);
fclose (stdin );
fclose (stdout);
return 0;
}