Cod sursa(job #630122)
| Utilizator | Data | 4 noiembrie 2011 19:11:23 | |
|---|---|---|---|
| Problema | Transport | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 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)
{for(i=1,t=x=0;i<=n;)
if(s[i]-s[t]<=c)
i++;
else
t=i-1,x++;
if(s[n]-s[t]<=c)
x++;
if(x==k)
break;
else
if(x<k)
c--;
else
c++;}
fprintf(f2,"%ld",c);
return 0;}
