Pagini recente » Cod sursa (job #1662605) | Cod sursa (job #2354617) | Cod sursa (job #2867587) | Cod sursa (job #2466987) | Cod sursa (job #1734561)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16005], n, k;
bool isOK2(int capacitate)
{
int i = 1, cap = 0, cate=0;
while(i<=n)
{
if(cap>=v[i])
{
cap -= v[i];
i++;
}
else
{
if(v[i]>capacitate) return false;
cate++;
cap = capacitate;
}
}
if(cate<=k) return true;
return false;
}
int cb()
{
int st = 1, dr = 16000, m, last = -1;
while(st<=dr)
{
int m = (st+dr) / 2;
if( isOK2(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();
}