Pagini recente » Cod sursa (job #2191886) | Cod sursa (job #1911368) | Cod sursa (job #1316992) | Cod sursa (job #2311140) | Cod sursa (job #1707273)
#include <fstream>
using namespace std;
int n, t, v[16001];
bool sePoate( int k ) {
int i, c=k, nr=1;
for( i=1; i<=n; i++ ) {
if( v[i] > c ) {
c = k;
nr++;
}
if( v[i] > c )
return false;
if( nr > t )
return false;
c -= v[i];
}
return true;
}
int main()
{
ifstream in("transport.in");
ofstream out("transport.out");
int i, k, pas;
in >> n >> t;
for( i=1; i<=n; i++ ) {
in >> v[i];
}
pas = ( 1 << 29 );
i=0;
while( pas != 0 ) {
if( !sePoate(i+pas) )
i += pas;
pas /= 2;
}
out << 1+i;
return 0;
}