Cod sursa(job #630103)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 4 noiembrie 2011 18:50:39
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#define N 16001
long a[N],n,i,k,s[N],x,c,t,m;
int main()
{FILE *f1=fopen("transport.in","r"),*f2=fopen("transport.out","w");
fscanf(f1,"%ld%ld",&n,&k);
for(i=1;i<=n;i++)
       {fscanf(f1,"%ld",&a[i]),s[i]=s[i-1]+a[i];
       if(a[i]>m)
              m=a[i];}
c=m;
while(1)
       {i=1,t=x=0;
       while(i<=n)
              {while(i<=n&&s[i]-s[t]<=c)
                      i++;
              t=i-1,x++;}
       if(s[n]-s[t]>c)
               c++;
       else
               if(x==k)
                       break;
               else
                       if(x<k)
                              c--;
                       else
                              c++;}

fprintf(f2,"%ld",c);
return 0;}