Pagini recente » Cod sursa (job #3033324) | Cod sursa (job #2629941) | Cod sursa (job #1492041) | Cod sursa (job #156479) | Cod sursa (job #2562729)
#include <fstream>
std::ifstream cin("transport.in");
std::ofstream cout("transport.out");
int array[10001] = {};
int main()
{
int n{}, k{}, cap{};
int max{};
cin >> n >> k;
for(int i = 1; i <= n; i++){
cin >> array[i];
if(array[i] > max)
max = array[i];
}
cap = max;
bool ok = 0;
while(!ok){
int zile{}, i{1}, sum{};
while(zile <= k && i <= n){
if(sum + array[i] > cap){
sum = 0;
zile++;
}
else{
sum += array[i];
i++;
}
if(i == n && sum + array[i] < cap)
zile++;
}
if(zile <= k)
ok = 1;
else
cap++;
}
cout << cap;
}