Cod sursa(job #2073771)

Utilizator shantih1Alex S Hill shantih1 Data 23 noiembrie 2017 18:16:21
Problema Grupuri Scor 74
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");

int n, i, j, k, s, t, v[100005];
int st, dr, mid, rez, g;

int main () {
	
	fin >> k >> n;
	for (i = 1; i <= n; i++)
	{
		fin >> v[i];
		s += v[i];
	}
	
	st = 1;		dr = s/k;
	while (st <= dr)
	{
		mid = st+(dr-st)/2;
		s = 0;
		for (i = 1; i <= n; i++)
		{
			if (v[i] < mid)	s += v[i];
			else 			s += mid;
		}
		
		if (s >= mid*k)		st = mid+1;
		if (s < mid*k)		dr = mid-1;
	}
	
	s = 0;
	st = mid+1;
	for (i = 1; i <= n; i++)
	{
		if (v[i] < st)	s += v[i];
		else 			s += st;
	}
	if (s >= st*k)	mid++;
	
	s = 0;
	for (i = 1; i <= n; i++)
	{
		if (v[i] < mid)	s += v[i];
		else 			s += mid;
	}
	if (s < mid*k)	mid--;
	
	fout << mid << "\n";
}