Pagini recente » Cod sursa (job #1870307) | Cod sursa (job #272984) | Cod sursa (job #315434) | Cod sursa (job #1830487) | Cod sursa (job #2910331)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin( "grupuri.in" );
ofstream fout( "grupuri.out" );
using ll = long long;
const int DIM = 100005;
int cnt[DIM];
int n, k;
bool ok( int g ) {
ll avb = 0;
for ( int i = 1; i <= n; ++i ) {
avb += min(g, cnt[i]);
}
return avb >= (ll)k * g;
}
signed main() {
fin >> k >> n;
for ( int i = 1; i <= n; ++i ) {
fin >> cnt[i];
}
int l = 0, r = 1e12;
while ( r - l > 1 ) {
int mid = (l + r) / 2;
if ( ok(mid) ) {
l = mid;
} else {
r = mid;
}
}
if ( l > r ) swap(l, r);
if ( ok(r) ) {
fout << r;
} else {
fout << l;
}
fin.close();
fout.close();
return 0;
}