Pagini recente » Cod sursa (job #1336960) | Cod sursa (job #1178998) | Cod sursa (job #1208292) | Cod sursa (job #2555339) | Cod sursa (job #825805)
Cod sursa(job #825805)
#include<cstdio>
using namespace std;
long long mij,n,i,j,k,m,min,max,a[16006],rez,sum;
long long bin(int st,int dr)
{
bool ok=true;int s1=0,k1=1;
if (st<=dr)
{
mij=(st+dr)/2;
for (i=1;i<=n;i++)
if (s1+a[i]<=mij) s1+=a[i];
else k1++,s1=a[i];
if (k1<=k) return bin(st,mij-1);else return bin(mij+1,dr);
}else return st;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%lld %lld",&n,&k);
for (i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
if (max<a[i]) max=a[i];
sum+=a[i];
}
printf("%lld",bin(max,sum));
return 0;
}