Cod sursa(job #587335)

Utilizator Catah15Catalin Haidau Catah15 Data 4 mai 2011 17:57:52
Problema Grupuri Scor 100
Compilator cpp Status done
Runda speedt1 Marime 0.74 kb
#include <iostream>

using namespace std;

#define maxG 99999999999999LL
#define LL long long
#define maxN 100005


int N, K;
LL sol;
LL A[maxN];


int ok (LL G)
{
	LL S = 0;
	
	for (int i = 1; i <= N; ++ i)
		S += min (A[i], G);
	
	if (S / G < K) return 0;
	return 1;
}


void bin_Search ()
{
	LL st = 0, dr = maxG;
	
	while (st <= dr)
	{
		LL mid = (st + dr) / 2;
		
		if (ok (mid))
		{
			sol = max (mid, sol);
			st = mid + 1;
		}
		else
			dr = mid - 1;
	}
}


int main()
{
	freopen ("grupuri.in", "r", stdin);
	freopen ("grupuri.out", "w", stdout);
	
	scanf ("%d %d", &K, &N);
	
	for (int i = 1; i <= N; ++ i)
		scanf ("%lld", &A[i]);
	
	bin_Search ();
	
	printf ("%lld", sol);
	
	return 0;
}