Pagini recente » Cod sursa (job #1636027) | Cod sursa (job #642986) | Cod sursa (job #2910094) | Cod sursa (job #3230484) | Cod sursa (job #2910570)
#include <fstream>
using namespace std;
ifstream cin ("transport.in") ;
ofstream cout ("transport.out") ;
int n,k,i,s,st,dr,mid,cap,maxi,nr;
int v[16005] ;
void read ()
{
cin >> n >> k ;
for( i = 1; i <= n; i++)
{
cin >> v[i];
s += v[i];
maxi = max ( maxi, v[i] ) ;
}
}
void solve()
{
st = maxi;
dr = s;
s = 0 ;
while( st <= dr )
{
cap = 1;
s = 0;
mid = st + (dr-st)/2;
for(i = 1; i <= n; i++) {
if( s + v[i] <= mid )
s += v[i];
else
{
s = v[i] ;
cap ++ ;
}
}
if( cap > k )
st = mid + 1;
else
{
nr = mid ;
dr = mid - 1;
}
}
cout << nr;
}
int main()
{
read () ;
solve () ;
return 0;
}