Pagini recente » Cod sursa (job #1402741) | Cod sursa (job #616642) | Cod sursa (job #2481047) | Cod sursa (job #1938580) | Cod sursa (job #2396251)
#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;
}
int cauta () {
int l = 0, r = n * k;
while ( r - l > 1 ) {
int 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 );
int nr = cauta ();
fout << nr << ' ';
return 0;
}