Cod sursa(job #999139)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 19 septembrie 2013 13:37:12
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
using namespace std;
int K,n,v[100100];
long long sum;

inline bool Posibil(long long nrg)
{
	int i;
	long long total=nrg*K;
	for(i=1;i<=n;i++)
		total-=1LL*min(1LL*v[i],nrg);
	if(total<=0LL)
		return true;
	return false;
}

inline long long CautareBinara()
{
	long long st,dr,mij,rez=0;
	st=1;
	dr=sum/(1LL*K);
	while(st<=dr)
	{
		mij=(st+dr)/2;
		if(Posibil(mij))
		{
			rez=mij;
			st=mij+1;
		}
		else
			dr=mij-1;
	}
	return rez;
}

int main()
{
	int i;
	ifstream fin("grupuri.in");
	fin>>K>>n;
	for(i=1;i<=n;i++)
	{
		fin>>v[i];
		sum+=1LL*v[i];
	}
	fin.close();
	
	ofstream fout("grupuri.out");
	fout<<CautareBinara()<<"\n";
	fout.close();
	return 0;
}