Pagini recente » Cod sursa (job #1555575) | Cod sursa (job #1012771) | Cod sursa (job #3128826) | Cod sursa (job #2589975) | Cod sursa (job #2380109)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("transport.in");
ofstream out ("transport.out");
int main(void)
{
int s=0,n,k,v[16001];
in>>n>>k;
for (int i=1;i<=n;++i)
{
in>>v[i];
s+=v[i];
}
int l=1,r=s,best;
while (l<=r)
{
int mid=(l+r)/2,s1=0,cnt=1;
for (int i=1;i<=n;++i)
{
s1+=v[i];
if (i==n && s1==mid)
cnt--;
if (s1>=mid)
{
cnt++;
s1=v[i];
}
}
if (cnt<=k)
{
best=mid;
r=mid-1;
}
else
l=mid+1;
}
out<<best;
return 0;
}