Pagini recente » Cod sursa (job #3216502) | Cod sursa (job #2582135) | Cod sursa (job #2153843) | Cod sursa (job #1483582) | Cod sursa (job #2924401)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout ("transport.out");
int N, v[30],k;
int tr (int c) {
int sum = 0, dr=0;
for(int i=1; i<=N; i++) {
while (sum+v[i]<=c) {
sum+=v[i];
i++;
}
i--;
dr++;
sum=0;
}
return dr;
}
int main (){
int s=0, mx=0;
fin>>N>>k;
for(int i=1; i<=N; i++) {
fin>>v[i];
s+=v[i];
if (v[i] > mx)
mx = v[i];
}
int l=mx,r=s, mid, sol;
while (l<=r) {
mid = l + (r-l)/2;
if (tr(mid)<=k) {
sol = mid;
r=mid-1;
}
else l=mid + 1;
}
fout<<sol;
fin.close();
fout.close();
return 0;
}