Cod sursa(job #487275)

Utilizator ChallengeMurtaza Alexandru Challenge Data 24 septembrie 2010 17:14:05
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>

using namespace std;

const char InFile[]="grupuri.in";
const char OutFile[]="grupuri.out";
const int MaxN=100010;

ifstream fin(InFile);
ofstream fout(OutFile);

long long K,N,A[MaxN],p,u,m,sol;

bool is_good(long long nrg)
{
	long long s=0;
	for(register int i=0;i<N;++i)
	{
		s+=min(nrg,A[i]);
	}
	if(s>=nrg*K)
	{
		return true;
	}
	return false;
}

int main()
{
	fin>>K>>N;
	for(register int i=0;i<N;++i)
	{
		fin>>A[i];
		u+=A[i];
	}
	fin.close();
	u/=K;

	while(p<=u)
	{
		m=p+(u-p)/2;
		if(is_good(m))
		{
			p=m+1;
			sol=m;
		}
		else
		{
			u=m-1;
		}
	}

	fout<<sol;
	fout.close();
	return 0;
}