Pagini recente » Cod sursa (job #1535712) | Cod sursa (job #3257477) | Cod sursa (job #251293) | Cod sursa (job #272635) | Cod sursa (job #1147381)
#include <cstdio>
#define Nmax 16010
using namespace std;
int a[Nmax],n,i,s,nr,k;
bool saltea(int volum)
{
int s=0, nr=0;
for (int i=1;i<=n;++i)
{
if (a[i]>volum) return false;
if (s+a[i]>volum) {nr++; s=0; s+=a[i];}
else s+=a[i];
}
if (s>0) nr++;
if (nr<=k) return true;
return false;
}
int cb()
{
int mij,nra;
int st=1, dr=s;
while (st<=dr)
{
mij=(st+dr)/2;
if (saltea(mij)) dr=mij-1, nra=mij;
else st=mij+1;
}
return nra;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d %d", &n, &k);
for (i=1;i<=n;++i)
{
scanf("%d", &a[i]);
s+=a[i];
}
printf("%d", cb());
return 0;
}