Pagini recente » Cod sursa (job #3223608) | Cod sursa (job #1298482) | Cod sursa (job #749035) | simci2 | Cod sursa (job #2683053)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
const int MAXN = 100003;
int k, n;
long long a[MAXN];
long long sum;
bool valid(int x)
{
long long contor = 0;
for (int i = n - 1; i >= 0; i--)
contor += min(1LL*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;
}