Cod sursa(job #343586)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 26 august 2009 14:41:45
Problema Grupuri Scor 22
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>

FILE *f,*s;

long long int n,k,i,sum,rez,v[100005];

long long int cautBin()
{
	long long int st=1;
	long long int dr=sum/k;

	long long int max=0;	
	while(st<=dr)
	{
		int mj=(st+dr)/2;
		
		long long int x=0;
		for(i=1;i<=n;i++)
		{
			if(v[i]>=mj)
				x+=mj;
			else
				x+=v[i];
		}	
		
		if(x==k*mj&&mj>max)
			max=mj;
		
		if(x<mj*k)
			dr=mj-1;
		
		if(x>=mj*k)
			st=mj+1;
	}	
	
	return max;
}

int main()
{
	f=fopen("grupuri.in","r");
	s=fopen("grupuri.out","w");
	
	fscanf(f,"%lld %lld",&k,&n);
	
	for(i=1;i<=n;i++)
	{	
		fscanf(f,"%lld",&v[i]);
		
		sum+=v[i];
	}
	
	rez=cautBin();
	
	fprintf(s,"%lld",rez);
	
	fclose(s);
	
	return 0;
}