Cod sursa(job #291019)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 29 martie 2009 11:32:27
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
long n,i,a[100005],c,k;
long long ult,s,dr,st,r,m;
int main()
{
 freopen("grupuri.in","r",stdin);
 freopen("grupuri.out","w",stdout);
 scanf("%ld%ld",&k,&n);
 for(i=1;i<=n;++i)
    {scanf("%ld",&a[i]);
     s+=a[i];}
 dr=s/k;
 st=1;
 while(st<=dr)
  {m=(st+dr)/2;
   r=1;
   c=1;
   for(i=1;i<=n;++i)
      {if(a[i]>=m)c++;
       else{r+=a[i];if(r>m)r=r-m,++c;}
       if(c>k)break;}
   if(c>k){ult=m;st=m+1;}
      else dr=m-1;}
 printf("%lld\n",ult);
 return 0;
}