Pagini recente » Cod sursa (job #1664200) | Cod sursa (job #788986) | Cod sursa (job #1236817) | Cod sursa (job #1694088) | Cod sursa (job #1720750)
#include <fstream>
using namespace std;
int main()
{
int n, k, c, i, j, *stiva, s = 0, max = 0, transporturi, suma;
bool ok = 0;
ifstream cin ("transport.in");
ofstream cout ("transport.out");
cin >> n >> k;
stiva = new int[n + 1];
for (i = 1; i <= n; i++){
cin >> stiva[i];
s = s + stiva[i];
if (stiva[i] > max){
max = stiva[i];
}
}
if (s / k > max){
c = s / k;
}
else {
c = max;
}
for (i = c; i <= s; i++){
transporturi = 0;
j = 1;
while (1){
suma = 0;
while (j <= n && suma + stiva[j] <= i){
suma = suma + stiva[j];
j++;
}
transporturi++;
if (transporturi > k){
break;
}
if (j > n){
ok = 1;
break;
}
}
if (ok == 1){
break;
}
}
cout << i;
return 0;
}