Cod sursa(job #815599)

Utilizator nnnmmmcioltan alex nnnmmm Data 17 noiembrie 2012 11:20:31
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
int i,j,k,v[16001],n,max,s,l,l1,r,nr,rr;
int main()
{
 freopen("transport.in","r",stdin);
 freopen("transport.out","w",stdout);
 scanf("%d%d",&n,&k);
 for(i=1;i<=n;i++)
     {
      scanf("%d",&v[i]);
      if(v[i]>max)
         max=v[i];
      s+=v[i];
     }
 l=max+1;
 l1=s+1;
 while(l<=l1)
       {
        r=(l+l1)/2;
        nr=0;
        for(i=1;i<=n;)
            {
             s=0;
             while(s+v[i]<=r && i<=n)
                   {
                    s+=v[i];
                    i++;
                   }

             nr++;
            }
        if(nr==k)
           rr=r;
        if(nr<=k)
           {l1=r-1;}
        else
           l=r+1;
       }
 printf("%d",rr);
}