Cod sursa(job #1077752)

Utilizator vld7Campeanu Vlad vld7 Data 11 ianuarie 2014 17:12:59
Problema Grupuri Scor 64
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

const int MAX_N = 100005;

int N, K, a[MAX_N];

void read() {
	f >> K >> N;
	for (int i = 1; i <= N; i++)
		f >> a[i];
}

bool isGood (int X) {
	long long nr = 0, must = 1LL * X * K;
	
	for (int i = 1; i <= N; i++)
		nr += min (a[i], X);
	
	if (nr >= must)
		return 1;
	return 0;
}

int solve (int lo, int hi) {
	int ret;
	
	while (lo <= hi) {
		int mid = (lo + hi) / 2;
		if (isGood (mid)) {
			ret = mid;
			lo = mid + 1;
		} else {
			hi = mid - 1;
		}
	}
	
	return ret;
}

int main() {
	read();
	g << solve (1, 1000000);
	
	return 0;
}