Cod sursa(job #44583)

Utilizator marinaMarina Horlescu marina Data 31 martie 2007 15:45:44
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
//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;
}