Pagini recente » Cod sursa (job #840143) | Cod sursa (job #987566) | Cod sursa (job #1503724) | Cod sursa (job #2009948) | Cod sursa (job #1505931)
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ifstream fin("transport.in");
ofstream fout("transport.out");
int N,K,v[16100],i,vmax=0,s=0,dr,st,mij,sum=0,p=1,k2=0,ver;
fin>>N>>K;
for(i=N;i>=1;i--){
fin>>v[i];
s+=v[i];
if(v[i]>vmax)
vmax=v[i];
}
dr=s;
st=vmax;
while(st<=dr){
k2=0;
mij=(st+dr)/2;
for(i=N;i>=1;i--){
sum+=v[i];
ver=0;
if(sum>mij){
sum=v[i];
k2++;
ver=1;
}
}
if(ver==0)
k2++;
if(k2<=K)
dr=mij-1;
else if(k2>K)
st=mij+1;
}
fout<<mij;
return 0;
}