Cod sursa(job #2832727)

Utilizator velciu_ilincavelciu ilinca velciu_ilinca Data 14 ianuarie 2022 10:57:19
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int volume[16005],k,n;
bool incape(long long dimensiune,int volume[])
{
    long long s=0;
    int nrtransp=0;
    for(int i=1;i<=n;i++)
    {
        if(s+volume[i]<=dimensiune)
            s+=volume[i];
        else
            {
                nrtransp++;
                s=volume[i];
            }
    }
    nrtransp++;///pt ultimul transport
    if(nrtransp<=k)
        return true;
    return false;
}
int cautbin(long long st,long long dr)
{
    int rasp=-1;
    while(st<=dr)
    {
        long long mij=(st+dr)/2;
        if(incape(mij,volume)==true)
        {
            rasp=mij;
            dr=mij-1;
        }
        else
            st=mij+1;
    }
    return rasp;

}

int main()
{
    long long svol=0;
    in>>n>>k;
    for(int i=1;i<=n;i++)
    {
        in>>volume[i];
        svol+=volume[i];
    }
    out<<cautbin(1,svol);


    return 0;
}