Pagini recente » Cod sursa (job #199833) | Cod sursa (job #2023696) | Cod sursa (job #52231) | Cod sursa (job #2011700) | Cod sursa (job #1720745)
#include <fstream>
using namespace std;
int main()
{
int n, k, c, i, j, *stiva, s = 0, max = 0, transporturi, suma;
bool ok = 0, *incarcat;
ifstream cin ("transport.in");
ofstream cout ("transport.out");
cin >> n >> k;
stiva = new int[n + 1];
incarcat = new bool[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 = 1;
j = 1;
while (1){
suma = 0;
while (j <= n && suma + stiva[j] <= c){
suma = suma + stiva[j];
j++;
}
transporturi++;
if (transporturi > k){
break;
}
if (i > n){
ok = 1;
break;
}
}
if (ok == 1){
break;
}
}
cout << i;
return 0;
}