Cod sursa(job #529917)

Utilizator CS-meStanca Marian Ciprian CS-me Data 6 februarie 2011 15:24:00
Problema Grupuri Scor 98
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
FILE *fin, *fout;
int n,k,i,v[100001],max,m,p,u;
long long s;

int main(){

	fin=fopen("grupuri.in","r");
	fout=fopen("grupuri.out","w");

	fscanf(fin,"%d %d\n",&k,&n);

	for(i=1;i<=n;i++){
		fscanf(fin,"%d",&v[i]);
		s+=v[i];
	}

	p=1;
	u=s/k;

	while(p<=u){
		m=(p+u)/2;

		s=0;

		for(i=1;i<=n;i++){
			if(v[i]<m){
				s+=v[i];
			}
			else{
				s+=m;
			}
		}

		if(k*m>s){
			u=m-1;
		}
		else{
			if(max<m) max=m;
			p=m+1;
		}
	}


	fprintf(fout,"%d",max);


	fclose(fout);
	fclose(fin);

return 0;
}