Pagini recente » Cod sursa (job #1080059) | Cod sursa (job #646665) | Cod sursa (job #299599) | Cod sursa (job #250872) | Cod sursa (job #1068278)
#include <fstream>
using namespace std;
ifstream is("transport.in");
ofstream os("transport.out");
int a[16001], n, k;
int st, dr = 256000000, s, aux, m;
int main()
{
is >> n >> k;
for ( int i = 1; i <= n; i++ )
{
is >> a[i];
if ( a[i] > st )
st = a[i];
}
while( st < dr )
{
s = 0;
aux = 1;
m = ( dr + st ) / 2;
for ( int i = 1; i <= n; i++ )
if ( s + a[i] <= m )
s += a[i];
else
{
s = a[i];
aux++;
}
if ( aux > k )
st = m + 1;
else
dr = m;
}
os << st;
is.close();
os.close();
return 0;
}