Pagini recente » Cod sursa (job #1865483) | Cod sursa (job #2329277) | Cod sursa (job #2656560) | Cod sursa (job #1127909) | Cod sursa (job #365295)
Cod sursa(job #365295)
#include<stdio.h>
long n,k,max,var;
long a[16000],suma=0;
int main()
{
FILE*f=fopen("transport.in","r");
fscanf(f,"%d%d",&n,&k);
int i=0;
for(i,max=0;i<n;++i)
{
fscanf(f,"%d",&var);
if(var>max)max=var;
if(i)a[i]=a[i-1]+var;
else a[i]=var;
}
fclose(f);
var=a[n-1]/k;
if(var<max)var=max;
int ok=1,ind=-1,pred=-1,nrTrans=0,A=0,B=16000,C;
while(ok)
{ suma=0;
if(nrTrans==k-1&&a[n-1]-a[pred]<=var)ind=n;
else if(nrTrans==k-1)suma=var+1;
while(suma<=var&&ind<n)
{
++ind;
if(ind==n)continue;
suma=0;
suma=a[ind];
if(nrTrans)suma-=a[pred];
}
if(ind==n){ok=0;continue;}
--ind;
pred=ind;
++nrTrans;
if(nrTrans==k)
{++var;nrTrans=0;ind=pred=-1;}
}
FILE*g=fopen("transport.out","w");
fprintf(g,"%d\n",var);
fclose(g);
return 0;
}