Pagini recente » Cod sursa (job #593253) | Cod sursa (job #2360336) | Cod sursa (job #3002791) | Cod sursa (job #913393) | Cod sursa (job #1198503)
#include <fstream>
#include <iostream>
using namespace std;
#define dim 16003
int a[dim],maxim=-1,n,k,s=0;
int solve(int l,int r){
if(l==r) return l;
int mid=(l+r)/2,i,j=1,nr=0;
while(j!=n+1){
i=a[j];
while(i<=mid && j<n+1) j++,i+=a[j];
nr++;
}
if(nr>k) return solve(mid+1,r);
else if(nr<=k) return solve(l,mid);
}
int main(){
ifstream f("transport.in");
ofstream g("transport.out");
f >> n >> k;
for(int i=1;i<=n;i++){
f >> a[i];
s+=a[i];
maxim=max(maxim,a[i]);
}
g << solve(maxim,s);
}