Pagini recente » Cod sursa (job #2485409) | Cod sursa (job #1363899) | Cod sursa (job #1300028) | Cod sursa (job #1143152) | Cod sursa (job #2683051)
#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;
}