Pagini recente » Cod sursa (job #1200792) | Cod sursa (job #2199455) | Cod sursa (job #3196822) | Cod sursa (job #1673125) | Cod sursa (job #1030203)
#include<cstdio>
int v[16000];
int main()
{
FILE *f, *g;
int n,k,i,j,a,flg=0,smin=-1,s1,st,nps;
f=fopen("transport.in","r");
g=fopen("transport.out","w");
fscanf(f,"%d%d",&n,&k);
for(i=0;i<n;i++)
{
fscanf(f,"%d",&v[i]);
if(v[i]>smin) smin=v[i];
}
j=1;
/*while(flg==0 && j<smin)
{
//generez primul transport
for(i=0,s1=0;i<j;i++) s1+=v[i];
a=j;
nps=s1;
while(a<n)
{
//generez suma urmatoare
st=0;
while(a<n && st+v[a]<=s1)
{
st+=v[a];
a++;
}
printf("a=%d\,s1=%d\n",a,s1);
if(st==0)
a=n+5;
else if(st>nps)
nps=st;
}
if(a==n)
flg=1;
else j++;
}*/
int s=smin;
while(flg==0)
{
//generez primul transport
i=0;
s1=0;
while(s1<s)
{
s1+=v[i];
i++;
}
nps=1;
st=s1;
while(i<n && nps<=k)
{
//generez urmatoarea suma
s1=0;
while(s1<s && i<n)
{
s1+=v[i];
i++;
}
if(s1>st)
st=s1;
nps++;
}
if(nps==k+1)
s++;
else flg=1;
}
fprintf(g,"%d\n",st);
fclose(f);
fclose(g);
return 0;
}