Pagini recente » Cod sursa (job #1327704) | Cod sursa (job #529602) | Cod sursa (job #2652694) | Cod sursa (job #1624739) | Cod sursa (job #3254106)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[16001];
int main()
{
int n, k, maxi=-1, s, sm=0, nrt=0, i, a, mij, st, dr, sol;
cin>>n>>k;
for(i=1; i<=n; i++){
cin>>a;
if(a>maxi)
maxi=a;
v[i]=a;
sm=sm+a;
}
st=maxi;
dr=sm;
while(st<=dr){
mij=(st+dr)/2;
s=0;
nrt=1;
for(i=1; i<=n; i++){
if(s+v[i]<=mij)
s=s+v[i];
else{
nrt++;
s=v[i];
}
}
if(nrt>k){
st=mij+1;
}
else{
dr=mij-1;
sol=mij;
}
}
cout<<sol;
return 0;
}