Pagini recente » Cod sursa (job #2153507) | Cod sursa (job #1575855) | Cod sursa (job #1505687) | Cod sursa (job #1401321) | Cod sursa (job #2578402)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, k, v[16001], maxi;
bool Verificare(int val)
{
int s=v[1], ct=1;
for(int i=2; i<=n; i++)
{
if(s+v[i] <= val)
s += v[i];
else s=v[i], ct++;
}
if(ct<=k)
return 1;
return 0;
}
int CB()
{
int st, dr, mij, capacitate;
st = maxi;
dr = 16000;
while(st<=dr)
{
mij = (st+dr)/2;
if(Verificare(mij))
{
capacitate = mij;
dr = mij-1;
}
else st = mij+1;
}
fout << capacitate;
}
int main()
{
fin >> n >> k;
for(int i=1; i<=n; i++)
{
fin >> v[i];
if(v[i] > maxi)
maxi = v[i];
}
CB();
return 0;
}