Pagini recente » Cod sursa (job #2513216) | Cod sursa (job #2346624) | Cod sursa (job #3252602) | Cod sursa (job #1972739) | Cod sursa (job #3038356)
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int stiva[16001],n,stmax;
bool ok(int c, int k){
int s=0,i,nrt=1;
if(stmax>c)return false;
for(i=1;i<=n;i++){
if(s+stiva[i]<=c){
s+=stiva[i];
}else{
s=stiva[i];
nrt++;
}
}
return (nrt<=k);
}
int st=1,dr=256000000,mij,c,k,i;
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++){
fin>>stiva[i];
stmax=stmax>stiva[i]?stmax:stiva[i];
}
while(st<=dr){
mij=(st+dr)/2;
if(ok(mij,k)){
c=mij;
dr=mij-1;
}else{
st=mij+1;
}
}
fout<<c;
return 0;
}