Pagini recente » Cod sursa (job #1389149) | Cod sursa (job #2819058) | Cod sursa (job #108909) | Cod sursa (job #2974262) | Cod sursa (job #44583)
Cod sursa(job #44583)
//Grupuri - infoarena
#include <stdio.h>
#define INPUT "grupuri.in"
#define OUTPUT "grupuri.out"
#define MAXN 100001
int v[MAXN];
int N, K;
long long S;
int main()
{
freopen(INPUT, "r", stdin);
scanf("%d %d", &K, &N);
int i;
for(i = 1; i <= N; ++i)
scanf("%d", &v[i]),
S += v[i];
int st = 0, dr = S/K, mij = (st + dr + 1)/2;;
long long nr = 0;
while(st < dr)
{
nr = 0;
for(i = 1; i <= N && v[i] <= mij; ++i)
nr += v[i];
for(; i <= N; ++i)
nr += mij;
if(nr / mij >= K) st = mij;
else dr = mij - 1;
mij = (st+dr+1)/2;
}
freopen(OUTPUT, "w", stdout);
printf("%d\n", mij);
return 0;
}