Cod sursa(job #2666116)

Utilizator dream3rDavid Pop dream3r Data 31 octombrie 2020 22:13:56
Problema Grupuri Scor 96
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <queue>
#include <climits>
#include <string.h>
#include <algorithm>
using namespace std;
#define ll unsigned long long int
ifstream f("grupuri.in");
ofstream o("grupuri.out");
vector<int>v;
int k, n;
int s;

bool eok(int x)
{
	ll cate = 0;
	for (int i = n - 1; i >= 0; i--)
	{
		cate += min(x, v[i]);
	}

	return cate >= 1ll * x * k;
}


int main()
{
	f >> k >> n;
	for (size_t i = 0; i < n; i++)
	{
		int x;
		f >> x;
		v.push_back(x);
		s += x;
	}
	//	s /= k;
	int ans;
	ll stanga = 0;
	ll dreapta = s;


	while (stanga < dreapta - 1)
	{
		ll mijloc = (stanga + dreapta) / 2;
		if (eok(mijloc))
		{
			stanga = mijloc;
		}
		else
		{
			dreapta = mijloc;
		}


	}

	o << stanga;


}