Pagini recente » Cod sursa (job #2027627) | Cod sursa (job #285315) | Cod sursa (job #1332332) | Cod sursa (job #901955) | Cod sursa (job #3167282)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,m,i,j,k,s,rez,st,dr,mid,last,sum,nr,maxim;
int v[16010];
int main () {
cin>>n>>k;
for (i=1;i<=n;i++) {
cin>>v[i];
s+=v[i];
if(maxim<v[i])
maxim=v[i];
}
st=maxim;
dr=s;
while (st<=dr) {
mid=(st+dr)/2;
sum=0;
nr=0;
for (i=1;i<=n;i++) {
sum+=v[i];
if (sum==mid) {
nr++;
sum=0;
}
if (sum>mid) {
nr++;
sum=0;
i--;
}
}
if (nr<k) {
dr=mid-1;
}
else {
st=mid+1;
}
}
cout<<st;
}