Cod sursa(job #499983)

Utilizator Robert29FMI Tilica Robert Robert29 Data 11 noiembrie 2010 10:10:16
Problema Grupuri Scor 88
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
FILE*f=fopen("grupuri.in","r");
FILE*g=fopen("grupuri.out","w");
int i,j,v[100001],p,u,n,k;
long long s,x,y;
int min(int a,int b){
	if(a>b)
		return b;
	else
		return a;
}	
int main(){
	fscanf(f,"%d%d",&k,&n);
	for(i=1;i<=n;i++){
		fscanf(f,"%d",&v[i]);
		s+=v[i];
	}
	p=1;
	u=s;
	
	while(p<=u){
		x=(p+u)/2;
		s=0;
		for(i=1;i<=n;i++)
			s+=min(v[i],x);
		if(s<x*k)
			u=x-1;
		else
			p=x+1;
/*			if(s>x*k)
				p=x+1;
			else
				break;*/
	}
	
	fprintf(g,"%d",u);
	
	fclose(g);
	fclose(f);
	return 0;
}