Pagini recente » Cod sursa (job #2262626) | Cod sursa (job #2974406) | Cod sursa (job #224229) | Cod sursa (job #2062428) | Cod sursa (job #1068293)
#include<cstdio>
using namespace std;
int n,a[16005],mij,i,k,li,ls;
int next(int t, int r)
{
int i,sum=0;
for (i=t;i<=n;++i)
{
sum+=a[i];
if (sum>r) return i-1;
}
return n;
}
int valid(int r)
{
int i=1,o,nr=0;
while (i<=n)
{
o=next(i,r);
if (o<i) return 0;
else ++nr, i=o+1;
}
if (nr<=k) return 1;
else return 0;
}
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]);
if (a[i]>ls) ls=a[i];
}
li=1;
while (li<=ls)
{
mij=(li+ls)/2;
int i=1,val,nr=0,e=0;
if (valid(mij)==1) ls=mij-1;
else li=mij+1;
}
printf("%d\n",ls+1);
return 0;
}