Pagini recente » Cod sursa (job #124418) | Cod sursa (job #1224631) | Cod sursa (job #2291298) | Cod sursa (job #1552162) | Cod sursa (job #354766)
Cod sursa(job #354766)
#include<cstdio>
#define N 16001
int n , k ;
int x [ N ] ;
bool ok ( int cap )
{
int nrt = 1 ;
int capc = 0 ;
int i ;
for ( i = 1 ; i <= n && nrt <= k ; i ++ )
if ( x[i] > cap ) return false;
else
if ( capc + x[i] <= cap )
capc += x[i];
else
{
capc=x[i];
nrt ++ ;
}
if ( nrt > k ) return false ;
return true;
}
int caut ()
{
int pas = 1 << 30 , i;
for ( i = 0 ; pas ; pas >>=1 )
if ( !ok(i+pas) )
i+=pas;
return i + 1 ;
}
int main ( )
{
freopen ( "transport.in" , "r" , stdin ) ;
freopen ( "transport.out" , "w" , stdout ) ;
scanf ( "%d%d" , & n , & k ) ;
int i ;
for ( i = 1 ; i <= n ; i ++ )
scanf ( "%d" , & x[i] ) ;
printf ( "%d" , caut () ) ;
return 0 ;
}