Cod sursa(job #499987)

Utilizator KoniacDocea Andrei Koniac Data 11 noiembrie 2010 10:18:25
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>

FILE * f = fopen("grupuri.in","r");
FILE * g = fopen("grupuri.out","w");

int i,j,m,n,k;
int a[1000001];
long long s,x,p,u;

int min(int a, int b){
	if(a<b)
		return a;
	else
		return b;
}

int main(){
	fscanf(f,"%d%d",&k,&n);
	for(i=1;i<=n;i++){
		fscanf(f,"%d",&a[i]);
		s+=a[i];
	}
	u=s;
	p=1;
	while(p<=u){
		x=(p+u)/2;
		s=0;
		for(i=1;i<=n;i++){
			s+=min(a[i],x);
		}
		if(s<x*k){
			u=x-1;
		}
		else
			p=x+1;
/*			if(s>x*k){
				p=x+1;
			}
			else
				break;
*/	
	}
	
	
	
	fprintf(g,"%lld",u);
	fclose(f);
	fclose(g);
	return 0;
}