Pagini recente » Cod sursa (job #2387725) | Cod sursa (job #2839639) | Cod sursa (job #2000638) | Cod sursa (job #566881) | Cod sursa (job #1734547)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16005], n, k, m;
bool isOK(int capacitate)
{
int cate = 0;
for(int i=1; i<=n; i++)
{
int cap = capacitate;
if(v[i]<=cap)
{
cate++;
while(v[i]<=cap)
{
cap -= v[i++];
}
i--;
}
else if(v[i]>capacitate)
return false;
else
i--;
}
if(cate<=k) return true;
return false;
}
int main()
{
fin >> n >> k;
for(int i=1; i<=n; i++)
fin >> v[i];
int st = 1, dr = 16000;
while(st <= dr)
{
m = (st + dr) / 2;
if(isOK(m))
dr = m - 1;
else
st = m + 1;
}
if(!isOK(m))
m++;
fout << m;
}