Pagini recente » Cod sursa (job #214569) | Cod sursa (job #557054) | Cod sursa (job #2445262) | Cod sursa (job #1657777) | Cod sursa (job #1505953)
#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,k2,ver,sol;
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;
sum=0;
mij=(st+dr)/2;
for(i=N;i>=1;i--){
sum+=v[i];
ver=0;
if(sum>mij){
sum=0;
i++;
k2++;
ver=1;
}
}
if(ver==0)
k2++;
if(k2<=K){
sol=mij;
dr=mij-1;
}
else
st=mij+1;
}
fout<<sol;
return 0;
}