Pagini recente » Cod sursa (job #1804381) | Cod sursa (job #159030) | Cod sursa (job #336712) | Cod sursa (job #1427666) | Cod sursa (job #1505918)
#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;
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];
if(sum>mij){
sum=0;
k2++;
i++;
}
}
if(k2<=K)
dr=mij-1;
else if(k2>=K)
st=mij+1;
}
fout<<mij;
return 0;
}