Cod sursa(job #1023134)

Utilizator ELHoriaHoria Cretescu ELHoria Data 6 noiembrie 2013 15:13:01
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>
#include <vector>
#include <set>

using namespace std;
 
ifstream cin("grupuri.in");
ofstream cout("grupuri.out");

const int nmax = int(1e5) + 2;
int N, K;
int a[nmax];

int main()
{
	cin>>K>>N;
	for(int i = 0;i < N;i++) {
		cin>>a[i];
	}

	auto canGroup = [] (const int &G) {
		long long sum = 0;
		for(int i = 0;i < N;i++) {
			sum += min(a[i],G);
		}
		return sum >= 1ll*K*G;
	};

	int ans = 0;
	for(int step = 1<<30;step > 0;step >>= 1) {
		if(canGroup(ans + step)) {
			ans += step;
		}
	}
	cout<<ans;
    return 0;
}