Pagini recente » Cod sursa (job #1461166) | Cod sursa (job #2394825) | Cod sursa (job #2663732) | Cod sursa (job #2961038) | Cod sursa (job #1026632)
#include <fstream>
using namespace std;
ifstream is("transport.in");
ofstream os("transport.out");
int n, k;
int st, dr;
int m;
int c[16001];
int nrt;
int s;
int main()
{
is >> n >> k;
for ( int i = 0; i < n; ++i )
{
is >> c[i];
dr += c[i];
if ( c[i] > st )
st = c[i];
}
while ( st < dr )
{
nrt = 1;
s = 0;
m = (st + dr) / 2;
for ( int i = 0; i < n; ++i )
{
if ( s + c[i] <= m )
s += c[i];
else
{
s = c[i];
++nrt;
}
}
if ( nrt > k )
st = m + 1;
else
dr = m;
}
os << st;
is.close();
os.close();
return 0;
}