Pagini recente » Cod sursa (job #662263) | Cod sursa (job #1625791) | Cod sursa (job #2765337) | Cod sursa (job #658890) | Cod sursa (job #973938)
Cod sursa(job #973938)
// cautam binar cate grupuri formam
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn 100001
int N, K;
int val[maxn];
int ok( long long value) {
long long sum = 0;
for( int i = 0; i < N; ++i)
sum += min( (long long )val[i], value);
return sum >= value * K;
}
int main() {
freopen("grupuri.in", "r", stdin);
freopen("grupuri.out", "w", stdout);
cin>>K>>N;
long long sum = 0;;
for( int i = 0; i < N; ++i) {
cin>>val[i];
sum += val[i];
}
long long maxim = sum/K;
long long test = 1;
while( test <= maxim )
test *= 2;
test /= 2;
long long actual = 0;
//ok(5);
while( test ) {
if( actual + test <= maxim && ok( actual + test ) )
actual += test;
test /= 2;
}
cout<<actual<<endl;
}