Cod sursa(job #992471)

Utilizator Master011Dragos Martac Master011 Data 1 septembrie 2013 22:13:48
Problema Grupuri Scor 14
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<cstdio>
#define Close fclose(in); fclose(out)
using namespace std;

const int ctr = 1000010;
int K,n,v[ctr];

inline int min (long long a, long long b){
    return a < b ? a : b ;
}

bool verif(long long x){
    long long S = 0;
    for ( int i = 1; i < n+1; ++i )
            S += min( x, 1LL * v[i]);

    return S >= K * x * 1LL  ? true : false ;
}

long long bin_search (){
    long long sol=0, pow2 = 1LL*1<<60;

    while (pow2){
        if(verif(pow2+sol)) sol+= pow2;
        pow2>>=1;
    }
    return sol;
}

int main(){
    FILE *in=fopen("grupuri.in" ,"r");
    FILE *out=fopen("grupuri.out","w");

    fscanf(in, "%d%d" ,&K ,&n);
    for(int i = 1 ; i < n + 1 ; ++i)  fscanf(in , "%d" ,&v[i]);

    fprintf(out,"%lld\n",bin_search());
    Close;
    return 0;
}