Cod sursa(job #1501547)

Utilizator AnaRaduAna-Maria Radu AnaRadu Data 13 octombrie 2015 17:02:54
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#define lim 100000
int v[lim];
int main(){
    FILE *fin,*fout;
    fin=fopen("grupuri.in","r");
    fout=fopen("grupuri.out","w");
    long long i,n,k,s=0,l1,l2,mij,rez;
    fscanf(fin,"%lld%lld",&k,&n);
    for(i=0;i<n;i++){
        fscanf(fin,"%d",&v[i]);
        s+=v[i];
    }
    l1=1;
    l2=s/k+1;
    while(l1<=l2){
        mij=(l1+l2)/2;
        s=0;
        for(i=0;i<n;i++)
            if(v[i]>=mij)
                s+=mij;
            else
                s+=v[i];
        if(s>=k*mij){
            l1=mij+1;
            rez=mij;
        }
        else
            l2=mij-1;
    }
    fprintf(fout,"%lld",rez);
    fclose(fin);
    fclose(fout);
    return 0;
}