Pagini recente » Rating Ana Anduta (anio123) | Cod sursa (job #88812) | Cod sursa (job #2671750) | Cod sursa (job #1244595) | Cod sursa (job #990564)
Cod sursa(job #990564)
#include <iostream>
#include <fstream>
using namespace std;
#define Nmax 100001
int cap[Nmax];
long long N, S, K;
void read()
{
ifstream f("grupuri.in");
f >> K >> N;
for ( int i = 1; i <= N; ++i )
f >> cap[i],
S += cap[i];
f.close();
}
bool valid( long long nr_grupuri )
{
long long sum = 0;
for ( int i = 1; i <= N; ++i )
sum += min( 1LL * cap[i], nr_grupuri );
return ( sum >= nr_grupuri * K * 1LL );
}
long long cautare_binara( long long st, long long dr )
{
long long log2, step;
for ( log2 = 1; log2 < N; log2 <<= 1 );
for ( step = st; log2; log2 >>= 1 )
if ( step + log2 <= dr && valid( step + log2 ) )
step += log2;
return step;
}
void print()
{
ofstream g("grupuri.out");
g << cautare_binara( 1, S / K + 1 ) << "\n";
g.close();
}
int main()
{
read();
print();
return 0;
}