Pagini recente » Cod sursa (job #341367) | Cod sursa (job #684463) | Cod sursa (job #2897403) | Cod sursa (job #1897678) | Cod sursa (job #2380108)
#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=s/k,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;
}