Cod sursa(job #265184)

Utilizator ConsstantinTabacu Raul Consstantin Data 23 februarie 2009 15:23:02
Problema Grupuri Scor 86
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
long long  int v[100001],i,k,s,ok,p,u,l,m,n,nr,max,mij;

int cond(long long int x){
m=0;nr=0;
long long int i;
for(i=1;i<=n;i++)

        {if(v[i]>=x)
                nr++;
        else
                {m+=v[i] ;
                 nr+=m/x;
                 m%=x;}
        }
if(nr>=k)
        {max=mij;
        return 1;
        }
return 0;
}

int main(){

FILE *f=fopen("grupuri.in","r");
fscanf(f,"%lld%lld",&k,&n);
for(i=1;i<=n;i++)
        {fscanf(f,"%lld",&v[i]);
        s+=v[i];}
fclose(f);

p=1;
u=s;

FILE *g=fopen("grupuri.out","w");
while(p<=u)
        {mij=(p+u)>>1;
        ok=cond(mij);
        if(ok)
                p=mij+1;
        else
              u=mij-1;
        }

fprintf(g,"%lld",max);
fclose(g);
return 0;}