Pagini recente » Cod sursa (job #177963) | Cod sursa (job #2648182) | Cod sursa (job #1484119) | Cod sursa (job #2641191) | Cod sursa (job #2684001)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, k, s, trips, lf, rg=0, ans=-1, med;
int volum[16000];
bool FitMatress(int VanCap)
{
s=0;
trips=0;
for(int i=0; i<n; i++)
{
s=s+volum[i];
if(s>VanCap)
{
trips++;
s=0;
s=s+volum[i];
}
}
trips++;
if(trips<=k)
return true;
else return false;
}
int BinSearch(int lf, int rg)
{
while(lf<=rg)
{
med=(lf+rg)/2;
if(FitMatress(med))
{
ans=med;
rg=med-1;
}
else
lf=med+1;
}
return ans;
}
int main()
{
fin>>n>>k;
for(int i=0; i<n; i++)
{
fin>>volum[i];
}
lf=volum[0];
for(int i=0; i<n; i++)
{
if(volum[i]>lf)
lf=volum[i];
}
for(int i=0; i<n; i++)
rg=rg+volum[i];
fout<<BinSearch(lf, rg);
return 0;
}