Pagini recente » Cod sursa (job #2251884) | Cod sursa (job #2237417) | Cod sursa (job #1654078) | Cod sursa (job #1172266) | Cod sursa (job #587316)
Cod sursa(job #587316)
#include <iostream>
#include <cstring>
using namespace std;
#define NM 100005
#define LL long long
int A[NM], K, N;
int check (LL x)
{
LL tot = 0;
for (int i = 1; i <= N; ++i) tot += min(x, (LL)A[i]);
if (tot/x >= K) return 1;
return 0;
}
int main()
{
freopen ("grupuri.in", "r", stdin);
freopen ("grupuri.out", "w", stdout);
scanf ("%d %d", &K, &N);
for (int i = 1; i <= N; ++i) scanf ("%d", &A[i]);
LL st = 0, dr = 100000000000LL;
while (st < dr - 1)
{
LL mij = (st + dr)/2;
if (check(mij)) st = mij;
else dr = mij - 1;
}
if (check(dr)) printf ("%lld", dr);
else printf ("%lld", st);
return 0;
}