Cod sursa(job #3261618)

Utilizator stroescu_andreiStroescu Andrei stroescu_andrei Data 6 decembrie 2024 23:22:51
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int N,C,K,v[16001],i,vmax,suma,transp,l1,l2,s;
int main()
{
    f>>N>>K;
    for(i=1;i<=N;i++)
        f>>v[i];
    for(i=1;i<=N;i++)
    {
       suma=suma+v[i];
       if(v[i]>vmax)
            vmax=v[i];
    }
    l1=vmax;l2=suma;
    while(l1<=l2)
    {
        C=(l1+l2)/2;
        transp=1;s=0;
        for(i=1;i<=N;i++)
        {
            if(s+v[i]<=C)
                s=s+v[i];
            else
               {transp++;
                s=v[i];
               }
        }
        if(transp<=K)
            l2=C-1;
        else
            l1=C+1;
    }
    g<<C;
    f.close();
    g.close();
    return 0;
}