Pagini recente » Cod sursa (job #2956086) | Cod sursa (job #57625) | Cod sursa (job #875965) | Cod sursa (job #1219655) | Cod sursa (job #2175641)
#include <iostream>
#include <fstream>
int v[100000],n,k,st=-1,dr,p=0,nrt,tr=0,minim;
using namespace std;
int main () {
ifstream fin("transport.in");
ofstream fout("transport.out");
fin>>n>>k;
for(int i=0;i<n;i++){
fin>>v[i];
dr+=v[i];
if(v[i]>st)
st=v[i];
}
while(st<=dr){
p=0;
nrt=0;
int mid=(st+dr)/2;
while(p<n){
tr=0;
while(tr<mid && p<n)
tr+=v[p++];
if(tr>mid){
tr-=v[--p];
}
nrt++;
}
if(nrt<=k){
dr=mid-1;
minim=mid;
}
else
st=mid+1;
}
fout<<minim;
return 0;
}