Cod sursa(job #3253893)

Utilizator Andrada_MincaAndrada Minca Andrada_Minca Data 5 noiembrie 2024 10:09:39
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n,i,v[16005],sum,k,nmax,mij,st,dr,rez,sap,trans;
int main()
{
    fin>>n>>k;
    for (i=1;i<=n;i++)
        {
            fin>>v[i];
            sum+=v[i];
            nmax=max(nmax,v[i]);
        }
    st=nmax;
    dr=sum;
    while (st<=dr)
        {
            mij=st+(dr-st)/2;
            sap=0;
            trans=1;
            for (i=1;i<=n;i++)
                {
                    if (sap+v[i]<=mij) sap+=v[i];
                    else
                        {
                            sap=v[i];
                            trans++;
                        }
                }
            if (trans<=k)
                {
                    rez=mij;
                    dr=mij;
                }
            else st=mij+1;
            if (st==dr) {fout<<st; return 0;}
        }
    return 0;
}