Pagini recente » Cod sursa (job #1882691) | Cod sursa (job #2634589) | Cod sursa (job #1192854) | Cod sursa (job #101846) | Cod sursa (job #516971)
Cod sursa(job #516971)
#include <cstdio>
#include <string>
#define maxN 100005
#define ll long long
using namespace std;
int A[maxN], K, N;
inline bool check (ll val)
{
ll x = 1LL * val * K;
for (int i = 1; i <= N; i++) {
A[i] < val ? x -= A[i] : x -= val;
if (x <= 0) return 1;
}
return 0;
}
int main ()
{
freopen ("grupuri.in", "r", stdin);
freopen ("grupuri.out", "w", stdout);
scanf ("%d %d\n", &K, &N);
ll lf, ls, mid, S = 0, sol = 0;
int i;
for (i = 1; i <= N; i++) {
scanf ("%d", &A[i]);
S += A[i];
}
lf = 1; ls = S / (ll)K;
while (lf <= ls) {
mid = (lf + ls) >> 1;
if (check (mid)) {
sol = mid;
lf = mid + 1;
}
else ls = mid - 1;
}
printf ("%lld\n", sol);
return 0;
}