Pagini recente » Cod sursa (job #826248) | Cod sursa (job #2358376) | Cod sursa (job #447294) | Cod sursa (job #2874022) | Cod sursa (job #3147920)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int main()
{int N, K, Saltele[16001], SalteaMax=-999, SalteleSuma=0, i=0, j=0, Transporturi=1, SumaTransport=0, SumaTotala=0;
f>>N>>K;
for(i=0; i<N; i++)
{
f>>Saltele[i];
SalteleSuma=SalteleSuma+Saltele[i];
if(SalteaMax<Saltele[i])
{
SalteaMax=Saltele[i];
}
}
if(K>=N)
{
g<<SalteaMax;
return 0;
}
j=SalteaMax-1;
while((SumaTotala!=SalteleSuma)&&(Transporturi!=K))
{ j++;
i=0;
Transporturi=1;
SumaTotala=0;
SumaTransport=0;
while(i<N)
{
if(j>=SumaTransport+Saltele[i])
{
SumaTransport=SumaTransport+Saltele[i];
i++;
}
else
{
Transporturi++;
SumaTotala=SumaTotala+SumaTransport;
SumaTransport=0;
}
}
if(SumaTransport>j*2)
j=j*2;
}
g<<j;
return 0;
}