Pagini recente » Cod sursa (job #2110107) | Cod sursa (job #2434096) | Cod sursa (job #1370557) | Cod sursa (job #1235827) | Cod sursa (job #2069297)
/********************
Created by Sburly
********************/
#include <fstream>
using namespace std;
int n, k, v[16000];
bool ok(const long int& c)
{
int i = 0;
int s = 0;
int d = 1;
while(i < n)
{
if(s+v[i] > c)
s=v[i++],d++;
else
s+=v[i++];
if(d>k)
return false;
}
return true;
}
long int bin_search(long int& s, long int& d)
{
long int lmij= 0;
long int mij = s;
while(s<=d)
{
lmij = mij;
mij = (s+d)/2;
if(ok(mij))
d = mij-1;
else
s=mij+1;
}
return ok(mij)?mij:lmij;
}
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
long int mx=-1, s=0;
f >> n >> k;
for(int i = 0; i < n; i++)
{
f >> v[i];
s+=v[i];
if(v[i] > mx)
mx = v[i];
}
g << bin_search(mx, s);
return 0;
}