Pagini recente » Cod sursa (job #1451474) | Cod sursa (job #2452342) | Cod sursa (job #1919335) | Cod sursa (job #1659249) | Cod sursa (job #2847198)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const int VAL=15005;
int tr(int m, int n, int a[]){
int s=0,cnt=1;
for(int i=1;i<=n;i++){
if(s+a[i]<=m)s+=a[i];
else cnt++,s=a[i];
}
return cnt;
}
int main(){
int n,mij,k,maxi(0),st,ans,dr,s(0),a[16500];
fin >> n >> k;
for(int i=1;i<=n;++i)fin>>a[i],maxi=max(maxi,a[i]),s+=a[i];
for(int i=1;i<=n;i++){
st=maxi,dr=s;
while(st<=dr){
mij=(st+dr)/2;
if(tr(mij,n,a)<=k)ans=mij,dr=mij-1;
else st=mij+1;
}
}
fout << ans;
return 0;
}
// 3 4 4 3 3 2 3