Pagini recente » Cod sursa (job #131613) | Cod sursa (job #2872787) | Cod sursa (job #1522922) | Cod sursa (job #1492481) | Cod sursa (job #3254104)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[16001];
int main()
{
int n, k, i, s=0, maxi=-1, st, dr, mijl, nrtransp, sol;
cin>>n>>k;
for( i = 1; i <= n; i++ ){
cin>>v[i];
s+=v[i];
if( v[i] > maxi )
maxi=v[i];
}
st=maxi;
dr=s;
while( st <= dr ){
mijl=(st+dr)/2;
s=0;
nrtransp=1;
for( i = 1; i <= n; i++ ){
if( s + v[i] <= mijl )
s+=v[i];
else{
nrtransp++;
s=v[i];
}
}
if( nrtransp > k )
st=mijl+1;
else{
sol=mijl;
dr=mijl-1;
}
}
cout<<sol;
return 0;
}