Pagini recente » Istoria paginii runda/caracatita_paul | Cod sursa (job #378255) | Cod sursa (job #2036312) | Cod sursa (job #1443646) | Cod sursa (job #1044956)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int main()
{
int saltele[16000];
int max_drumuri, nr_saltele, i, total = 0, rezultat, drumuri_curente, maxim;
in>>nr_saltele>>max_drumuri;
maxim = saltele[0];
for(i = 0; i< nr_saltele; i++)
{
in>>saltele[i];
total += saltele[i];
if(maxim < saltele[i])
maxim = saltele[i];
}
rezultat = total / max_drumuri;
if(maxim < rezultat) rezultat = maxim;
inceput:
int incarcatura_curenta = 0;
drumuri_curente = 0;
for(i = 0; i< nr_saltele; i++)
{
if(rezultat < saltele[i])
{
rezultat = saltele[i];
goto inceput;
}
incarcatura_curenta+= saltele[i];
if(incarcatura_curenta >= rezultat)
{
if(incarcatura_curenta > rezultat)
incarcatura_curenta = saltele[i];
else
incarcatura_curenta = 0;
drumuri_curente++;
}
if(drumuri_curente > max_drumuri)
{
rezultat++;
goto inceput;
}
}
if(incarcatura_curenta > 0)
drumuri_curente++;
if(drumuri_curente > max_drumuri)
{
rezultat++;
goto inceput;
}
out<<rezultat;
return 0;
}