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