Cod sursa(job #2684001)

Utilizator Teo.D5Dragomir Teodor Teo.D5 Data 12 decembrie 2020 13:13:45
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#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;
}