Cod sursa(job #2683051)

Utilizator Robert.BrindeaBrindea Robert Robert.Brindea Data 10 decembrie 2020 12:23:36
Problema Grupuri Scor 98
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <queue>
#include <climits>
#include <string.h>
#include <algorithm>
using namespace std;

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

const int MAXN = 100003;
int k, n, a[MAXN];
long long sum;

bool valid(int x)
{
	long long contor = 0;
	for (int i = n - 1; i >= 0; i--)
		contor += min(x, a[i]);
	return contor >= 1ll * x * k;
}

int main()
{
	fin >> k >> n;
	for(int i = 0; i < n; i++)
	{
		fin >> a[i];
		sum += a[i];
	}
	long long st = 0, dr = sum;
	while (st < dr-1)
	{
		long long mid = st + (dr-st)/2;
		if (valid(mid))
            st = mid;
		else
            dr = mid;
	}
	fout << st;
}