Pagini recente » Cod sursa (job #1684170) | Cod sursa (job #992036) | Cod sursa (job #2255364) | Cod sursa (job #1609913) | Cod sursa (job #408546)
Cod sursa(job #408546)
#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,ver;
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;
ld=s2;
}
if (c<k)
{
ld=s2;
}
if (c>k)
{
ls=ld;
}
if (ver==s2)
break;
ver=s2;
}
fprintf (g, "%d", m);
return 0;
}