Pagini recente » Cod sursa (job #1488989) | Cod sursa (job #3125656) | Cod sursa (job #43839) | Cod sursa (job #791725) | Cod sursa (job #1546013)
#include<cstdio>
int n, k, a[16002];
bool ok(int x)
{ int cx=x, nrt=1;
for(int i=1; i<=n; ++i)
{ if (a[i]>cx) return false;
if (a[i]>x)
{ ++nrt;
if(nrt>k) return false;
x=cx-a[i];
continue;
}
x -= a[i];
}
return true;
}
int cautbin()
{ int i, pas=1<<28;
for(i=0; pas; pas >>= 1)
if(!ok(i+pas)) i += pas;
return i+1;
}
int main()
{ freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
scanf("%d %d",&n,&k);
for (int i=1; i<=n; ++i) scanf("%d",&a[i]);
printf("%d\n", cautbin());
return 0;
}