Pagini recente » Cod sursa (job #2599049) | Cod sursa (job #1998983) | Cod sursa (job #1693477) | Cod sursa (job #104447) | Cod sursa (job #2396259)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ( "grupuri.in" );
ofstream fout ( "grupuri.out" );
long long k, n;
long long a[100005];
int ok ( long long x ) {
long long s = 0;
for ( int i = 1; i <= n; i++ )
s += min ( a[i], x );
if ( s >= x * k )
return 1;
return 0;
}
long long cauta () {
long long l = 0, r = 100000000000;
while ( r - l > 1 ) {
long long mid = ( l + r ) / 2;
// cout << l << ' ' << r << ' ' << mid << '\n';
if ( ok ( mid ) )
l = mid;
else r = mid;
}
//cout << l << ' ' << r << ' ' << '\n';
return l;
}
int main() {
fin >> k >> n;
for ( int i = 1; i <= n; i++ ) {
fin >> a[i];
}
sort ( a + 1, a + n + 1 );
long long nr = cauta ();
fout << nr << ' ';
return 0;
}