Pagini recente » Cod sursa (job #207036) | Cod sursa (job #3172357) | Cod sursa (job #3001840) | Cod sursa (job #3176263) | Cod sursa (job #2069336)
/********************
Created by Sburly
********************/
#include <fstream>
using namespace std;
int n, k, v[16000];
bool ok(const long int& c)
{
int i = 0;
long 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)
{
mij = (s+d)/2;
if(ok(mij))
lmij=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;
}