Pagini recente » Cod sursa (job #1351635) | Cod sursa (job #1402341) | Cod sursa (job #2634690) | Cod sursa (job #3156413) | Cod sursa (job #2069282)
/********************
Created by Sburly
********************/
#include <fstream>
using namespace std;
int n, k, v[16000];
bool ok(const 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;
}
int bin_search(int& s, int& d)
{
int lmij= 0;
int mij = 0;
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");
int mx=-1, s=0;
f >> n >> k;
for(int i = 0; i < n; i++)
{
f >> v[i];
s+=v[i];
mx= max(mx,v[i]);
}
g << bin_search(mx, s);
return 0;
}