Cod sursa(job #2666113)

Utilizator dream3rDavid Pop dream3r Data 31 octombrie 2020 21:58:09
Problema Grupuri Scor 2
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 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;

int eok(int x)
{
	int cate = 0;
	for (size_t i = 0; i < n; i++)
	{
		cate += min(x, v[i]);
	}

	return cate / k;
}


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

	int stanga = 0;
	int dreapta = s;


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


	}

	o << dreapta;


}