Cod sursa(job #2803854)

Utilizator andiRTanasescu Andrei-Rares andiR Data 20 noiembrie 2021 15:46:25
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>

#define Nmax 16000
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
short n,k,i,mx,tr;
int l,r,m,mmin,cap;
short v[Nmax];
int main()
{
    fin>>n>>k;
    for (i=0;i<n;i++)
    {
        fin>>v[i];
        if (v[i]>mx)
            mx=v[i];
    }
    l=mx;
    r=Nmax*Nmax;
    while (l<=r)
    {
        m=(l+r)/2;
        ///simulare
        i=tr=cap=0;
        while (i<n && tr<=k)
        {
            cap=0;
            while (cap+v[i]<=m && i<n)
            {
                cap+=v[i];
                i++;
            }
            tr++;
        }
        if (tr>k)
            l=m+1;
        else
        {
            r=m-1;
            mmin=m;
        }
    }
    fout<<mmin;
    return 0;
}