Pagini recente » Cod sursa (job #825120) | Cod sursa (job #2082533) | Cod sursa (job #2485205) | Cod sursa (job #56121) | Cod sursa (job #407384)
Cod sursa(job #407384)
#include <stdio.h>
FILE *f=fopen ("transport.in", "r");
FILE *g=fopen ("transport.out", "w");
int n,k,i,ls,c,m,ld,s2,max;
int v[16001];
long s;
void citire (void) {
int i;
fscanf (f, "%d%d", &n, &k);
for (i=1;i<=n;i++)
{
fscanf (f, "%d", &v[i]);
if (max<v[i])
max=v[i];
s+=v[i];
}
}
int main() {
citire();
ls=max;
ld=s;
while (1)
{
s=ls+(ld-ls)/2;
s2=s; i=1; c=1;
while (i<=n && c<=k)
{
s-=v[i++];
if (s<0)
{
s=s2-v[i-1];
c++;
}
}
if (c==k)
{
m=s2;
ls=max;
ld=s2;
}
else
if (c<k)
{
ls=max;
ld=s2;
}
else
if (m)
break;
}
fprintf (g, "%d", m);
return 0;
}