Cod sursa(job #595431)

Utilizator valentin.harsanValentin Harsan valentin.harsan Data 12 iunie 2011 17:05:41
Problema Grupuri Scor 98
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<stdio.h>

int n,k,x[100010];

bool ver(long long g) {
	int i;
	long long su=0;
	for(i=1;i<=n;++i) {
		if(x[i]>g)
			su+=g;
		else
			su+=x[i];
		if(su>=g*k)
			break;
	}
	if(su>=k*g)
		return 1;
	return 0;
}

int main() {
	long long i,pas;
	freopen("grupuri.in","r",stdin);
	freopen("grupuri.out","w",stdout);
	scanf("%d%d",&k,&n);
	for(i=1;i<=n;++i)
		scanf("%d",&x[i]);
	pas=1<<20;
	for(i=0;pas!=0;pas>>=1)
		while(ver(i+pas))
			i+=(long long)pas;
	printf("%lld",i);
	return 0;
}