Pagini recente » Cod sursa (job #163414) | Cod sursa (job #1372380) | Cod sursa (job #2186169) | Cod sursa (job #183033) | Cod sursa (job #1734562)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16005], n, k;
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 = 1, 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];
fout << cb();
}