Pagini recente » Cod sursa (job #1735593) | Cod sursa (job #1916122) | Cod sursa (job #2593024) | Cod sursa (job #690794) | Cod sursa (job #1815269)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 100000;
const int VMAX = 1000000;
long long v[NMAX + 5], n, k;
inline bool ok (long long ans)
{
long long rez = 0;
for (int i = 1; i <= n; ++i)
rez += min(v[i], ans);
return rez >= ans * k;
}
int main()
{
freopen("grupuri.in", "r", stdin);
freopen("grupuri.out", "w", stdout);
long long st, dr, med, last;
scanf("%d %d", &k, &n);
for (int i = 1; i <= n; ++i)
scanf("%lld", &v[i]);
st = 1; dr = VMAX * k;
last = 0;
while (st <= dr)
{
med = (st + dr) / 2;
if (ok(med))
{
last = med;
st = med + 1;
}
else
dr = med - 1;
}
printf("%I64d\n", last);
return 0;
}