Pagini recente » Cod sursa (job #1008458) | Cod sursa (job #1783446) | Cod sursa (job #615894) | Cod sursa (job #2893796) | Cod sursa (job #2541005)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int main()
{
int n,nr,a[16000],i,st=0,dr=0,cap=0;
fin>>n>>nr;
for(i=0; i<n; i++){
fin>>a[i];
if(st<a[i])
st=a[i];
}
dr= 256000000;
while(st<=dr){
int mij=(st+dr)/2;
int k=1,l=0;
for(i=0; i<n; i++){
l=l+a[i];
if(l>mij){
k++;
l=a[i];
}
}
if(k>nr){
st=mij+1;
break;
}
else{
dr=mij;
cap=mij;
}
}
fout<<cap;
return 0;
}