Pagini recente » Cod sursa (job #1452533) | Cod sursa (job #78618) | Cod sursa (job #2889806) | Cod sursa (job #2843139) | Cod sursa (job #3148685)
#include <iostream>
#include <algorithm>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
int k, n;
const int max_n = 1e5+2;
int v[max_n];
long long s = 0;
int minim(int a, int b)
{
if( a < b )
return a;
else
return b;
}
int main() {
ios_base::sync_with_stdio(false);
f.tie(nullptr);
g.tie(nullptr);
f >> k >> n;
for( int i = 1; i <= n; ++i )
{
f >> v[i];
s+=v[i];
}
int grup_max = s/k;
int st = 1, dr = grup_max, mij;
int ras = 0;
while( st <= dr )
{
mij = (st + dr)/2;
long long sum_aux = 0;
for( int j = 1; j <= n; ++j )
{
sum_aux+=minim(mij, v[j]);
}
if( sum_aux >= mij*k )
{
ras = mij;
st = mij + 1;
}
else
dr = mij - 1;
}
g << ras;
return 0;
}