Pagini recente » Cod sursa (job #1850736) | Cod sursa (job #2468235) | Cod sursa (job #2550972) | Cod sursa (job #1236893) | Cod sursa (job #3160800)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
short int v[16000];
int main()
{
short int n,k,maxi=0,i;
fin>>n>>k;
int s=0;
for(i=0;i<n;i++){
fin>>v[i];
if(v[i]>maxi)
maxi=v[i];
s+=v[i];
}
int dr=s,st=maxi,mijl,t=s,ss;
while(st<=dr){
mijl=(st+dr)/2;
ss=1;
s=0;
for(i=0;i<n;i++){
s+=v[i];
if(s>mijl){
s=v[i];
ss++;
}
}
if(ss<=k){
t=mijl;
dr=mijl-1;
}
else
st=mijl+1;
}
fout<<t;
return 0;
}