Pagini recente » Cod sursa (job #3223991) | Cod sursa (job #565042) | Cod sursa (job #1544067) | Cod sursa (job #114203) | Cod sursa (job #3260234)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k;
int v[16003];
inline bool cautb(int x)
{
int cnt=0,sum=0;
for (int i=1;i<=n;i++)
{
if (sum+v[i]>x)
{
cnt++;
sum=v[i];
}
else sum=sum+v[i];
}
if (sum>0) cnt++;
if (cnt>k) return 0;
return 1;
}
int main()
{
fin>>n>>k;
int st=1,dr=1e9,sol=0;
for (int i=1;i<=n;i++)
fin>>v[i],st=max(st,v[i]);
while (st<=dr)
{
int mij=((st+dr)>>1);
if (!cautb(mij))
st=mij+1;
else
dr=mij-1,sol=mij;
}
fout<<sol;
return 0;
}