Cod sursa(job #1081348)

Utilizator stanescu.raduRadu Stanescu stanescu.radu Data 13 ianuarie 2014 15:43:18
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;

ifstream f("grupuri.in");
ofstream g("grupuri.out");

long long k,n,a[100005],i;

int validare(long long x)
{
    long long suma = 0;
    for(int i = 1;i <= n; i++)
		if(a[i] > x)
			suma = suma + x;
		else
			suma = suma + a[i];
    if(suma >= k * x)
		return 1;
	else
		return 0;
}

long long cautare_binara(long long st, long long dr)
{
	long long m;
	while(st <= dr)
	{
		m = (st + dr) / 2;
		if(validare(m) == 1 && validare(m + 1) == 0)
			return m;
		if(validare(m) == 0)
			dr = m - 1;
		else
			st = m + 1;
	}
}

int main()
{
    f >> k >> n;
    for(i = 1;i <= n; i++)
		f >> a[i];
    g << cautare_binara(1,(1<<30));
    f.close();
    g.close();
    return 0;
}