Pagini recente » Cod sursa (job #636761) | Cod sursa (job #2020484) | Cod sursa (job #1286751) | Cod sursa (job #1719914) | Cod sursa (job #2486548)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int main()
{
int n, k, mattress[16000];
fin >> n >> k;
//fout << n << ' ' << k << endl;
for (int i = 0; i < n; i++)
{
fin >> mattress[i];
//fout << saltele[i] << endl;
}
int biggestMattress = 0;
for (int i = 0; i < n; i++)
{
if (mattress[i] > biggestMattress)
biggestMattress = mattress[i];
}
//fout << "biggestMattress=" << biggestMattress;
int distribution[16000], sum, maxVolume = biggestMattress, solutionFound = 0, transportNo;
distribution[0] = 1; // first mattress in the first transport
while (!solutionFound)
{
transportNo = 1;
sum = mattress[0];
for (int i = 1; i < n; i++)
{
if (sum + mattress[i] <= maxVolume) {
sum += mattress[i];
distribution[i] = transportNo;
}
else {
transportNo++;
sum = mattress[i];
distribution[i] = transportNo;
}
if (transportNo > k) {
maxVolume++;
break;
}
if (i == n - 1)
solutionFound = 1;
}
}
fout<<maxVolume;
return 0;
}