Cod sursa(job #626994)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 28 octombrie 2011 19:06:49
Problema Transport Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#define N 16001
long a[N],n,i,k,s[N],x,c,l,t,y;
int main()
{freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%ld%ld",&n,&k);
for(i=1;i<=n;i++)
       scanf("%ld",&a[i]),s[i]=s[i-1]+a[i];
c=s[n]/k;
while(1)
if(s[1]<=c)
       {i=1,t=x=0;
       while(i<=n)
               {while(i<=n&&s[i]-s[t]<=c)
                     i++;
               t=i-1,x++;}
       if(x==k)
               y=1;
       if(!y)
               if(x<k)
                      c--;
               else
                      c++;
       else
               {if(x!=k)
                      break;
               c--;}}
else
       c++;
printf("%ld",c+1);
return 0;}