Pagini recente » Cod sursa (job #2333499) | Cod sursa (job #439685) | Cod sursa (job #2388272) | Cod sursa (job #780378) | Cod sursa (job #2333507)
/*
* Code by
* Andrei Arhire
- bulfei rotofei -
*/
#include <bits/stdc++.h>
using namespace std ;
ifstream in ("transport.in") ;
ofstream out("transport.out") ;
int n , v [ 16001 ] , maxim , d , sum ;
int test ( int k )
{
int i , nrtrucks = 1 , s = 0 ;
for ( i = 1 ; i <= n ; ++ i )
{
s += v [ i ] ;
if ( s > k )
{
s = v [ i ] ;
nrtrucks ++ ;
}
}
return nrtrucks ;
}
int divide ( int from , int to )
{
if ( from == to ) return to ;
int mid = ( from + to ) >> 1 ;
if ( test ( mid ) <= d ) return divide ( from , mid ) ;
else return divide ( mid + 1 , to ) ;
}
int main ()
{
in >> n >> d ;
for ( int i = 1 ; i <= n ; ++ i )
{
in >> v [ i ] ;
sum += v [ i ] ;
if ( v [ i ] > maxim ) maxim = v [ i ] ;
}
out << divide ( maxim , sum ) ;
in.close() ;
out.close() ;
return 0 ;
}