Cod sursa(job #1047399)

Utilizator tavi.belu1994FMI Belu Andrei Octavian tavi.belu1994 Data 4 decembrie 2013 13:00:46
Problema Grupuri Scor 72
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <cstdio>

FILE *f,*g;

bool cbin(long A[100000], long N, long K, long long k)
{
    int i;
    long long p = 0;
    for(i=1 ; i<=N ; i++)
    {
        if(A[i] > k)
            p += k;
        else
            p += A[i];
    }
    if(p < k * K)
        return false;
    return true;
}

using namespace std;

int main(){
    f=fopen("grupuri.in","r");
    g=fopen("grupuri.out","w");
    long K,N,A[100000];
    fscanf(f,"%ld%ld",&K,&N);
    for(long i=1;i<=N;i++)
    {
        fscanf(f,"%ld",&A[i]);
    }
    long long numar = 1 << 20;
    long long k = 0;
    while(numar)
    {
        if(cbin(A,N,K,k+numar) == true)
        {
            k += numar;
        }
        numar /= 2;
    }
    fprintf(g,"%lld",k);
    fclose(f);
    fclose(g);
    return 0;
}