Pagini recente » Cod sursa (job #740212) | Cod sursa (job #2696100) | Cod sursa (job #62701) | Cod sursa (job #676304) | Cod sursa (job #438308)
Cod sursa(job #438308)
#include <stdio.h>
int v[16001];
int n, i, j, k;
int trans;
int Max, s;
int main ()
{
FILE *f = fopen ("transport.in","r");
FILE *g = fopen ("transport.out","w");
fscanf (f,"%d %d", &n, &k);
for (i=1; i<=n; ++i)
{
fscanf (f,"%d", &v[i]);
if (v[i] > Max)
Max = v[i];
}
fclose(f);
trans = 0;
i = 1;
while (i <= n)
{
if (s + v[i] <= Max)
s += v[i];
else
{
s = 0;
trans ++;
continue;
}
i ++;
}
if (s)
trans ++;
if (trans <= k)
fprintf (g,"%d", Max);
else
{
while (1)
{
Max ++;
s = trans = 0;
i = 1;
while (i <= n)
{
if (s + v[i] <= Max)
s += v[i];
else
{
s = 0;
trans ++;
continue;
}
i ++;
}
if (s)
trans ++;
if (trans <= k)
break;
}
}
fprintf (g,"%d", Max);
fclose(g);
return 0;
}