Pagini recente » Cod sursa (job #2608183) | Cod sursa (job #592924) | Cod sursa (job #2493061) | Cod sursa (job #1265213) | Cod sursa (job #1734565)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16005], n, k, maxy;
int corect(int cap)
{
int sum=0, tran=0;
for(int i=1; i<=n; i++)
{
sum+=v[i];
if(sum>cap)
{
tran++;
sum=v[i];
}
}
if(tran<k && cap>=sum)
return 1;
return 0;
}
int cb()
{
int st = maxy, dr = 16000, m, last = -1;
while(st<=dr)
{
int m = (st+dr) / 2;
if( corect(m) )
{
last = m;
dr = m - 1;
}
else
st = m + 1;
}
return last;
}
int main()
{
fin >> n >> k;
for(int i=1; i<=n; i++)
fin >> v[i], maxy=max(maxy,v[i]);
fout << cb();
}