Pagini recente » Cod sursa (job #1834907) | Cod sursa (job #594868) | Cod sursa (job #636686) | Cod sursa (job #3256616) | Cod sursa (job #2528438)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[16000];
int main()
{
int n,k,mini=16001,s,i,volum,maxx=0,cpvolum,incarcari;
fin >> n >> k;
s=0;
for(i=0;i<n;i++)
{
fin >> v[i];
s+=v[i];
if(maxx<v[i])
maxx=v[i];
}
s=(s+k-1)/k;
if(maxx>s)
volum=maxx;
else
volum=s;
incarcari=k+1;
mini=0;
cpvolum=volum;
while(incarcari>k)
{
volum+=mini;
cpvolum=volum;
incarcari=1;
mini=16001;
for(i=0;i<n;i++)
{
if(volum<v[i])
{
if(mini>v[i]-volum)
mini=v[i]-volum;
volum=cpvolum;
incarcari++;
}
volum-=v[i];
}
volum=cpvolum;
}
fout << volum;
return 0;
}