Cod sursa(job #1309430)

Utilizator felixiPuscasu Felix felixi Data 5 ianuarie 2015 19:04:32
Problema Grupuri Scor 98
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
///   InfoAerena ~~ Grupuri

#include <fstream>

using namespace std;

ifstream in("grupuri.in");
ofstream out("grupuri.out");

typedef long long I64;

const int NMAX = 100000;
const long long INF  = 0xFFFFFFFFFFFF;

I64 v[NMAX+1];
I64 N, K, Sol;

bool Good( I64 val ) {
    I64 Sum = 0;
    for( int i = 1;  i <= N && Sum < 1LL*val*K;  ++i ) {
        if( val < v[i] ) Sum += 1LL*val;
        else Sum += 1LL*v[i];
    }
    return (Sum >= 1LL*val*K);
}

int main() {
    in >> K >> N;
    for( int i = 1;  i <= N;  ++i )  in >> v[i];
    I64 step, i;
    for( step = 1;  step < INF;  step<<= 1 );
    for( i = 0;  step;  step>>= 1 ) {
        if( Good(i+step) ) i += 1LL*step;
    }
    out << i << '\n';
    return 0;
}