Pagini recente » Cod sursa (job #3269597) | Cod sursa (job #2594131) | Cod sursa (job #140651) | Cod sursa (job #618023) | Cod sursa (job #2381408)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
long long s,n,k,v[16001];
int main()
{
fin>>n>>k;
for (int i=1;i<=n;++i)
{
fin>>v[i];
s+=v[i];
}
int l=1,r=s+1,best;
while (l<=r)
{
int mid=(l+r)/2,s1=0,cnt=0;
for (int i=1;i<=n;++i)
{
s1+=v[i];
if (s1==mid)
{
s1=0;
cnt++;
}
if (s1>mid)
{
cnt++;
s1=v[i];
}
}
if (s1)
cnt++;
if (cnt<=k)
{
best=mid;
r=mid-1;
}
else
l=mid+1;
}
fout<<best;
fin.close();
fout.close();
return 0;
}