Cod sursa(job #2383996)

Utilizator ArkhamKnightyMarco Vraja ArkhamKnighty Data 19 martie 2019 22:35:59
Problema Transport Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>

using namespace std;
int v[16005],n,k,i,s,gr,maxx,st,dr,rez;
ifstream in("transport.in");
ofstream out("transport.out");
void citire()
{
    in>>n>>k;
    for(i=1; i<=n; i++)
    {
        in>>v[i];
        if(maxx<v[i])
            maxx=v[i];
    }

}
void prelucrare()
{
    st=k;
    dr=36000;
    while(st<=dr)
    {
        maxx=(st+dr)/2;
        s=0;
        gr=0;
        for(i=1; i<=n; i++)
        {
            if(s+v[i]<=maxx)
                s=s+v[i];
            else
            {
                s=v[i];
                gr++;
            }
        }
        gr++;
        if(gr<=k){
            dr=maxx-1;
            rez=maxx;
        }
        else{
            st=maxx+1;
        }
    }


}
void printare()
{
    out<<rez;
}
int main()
{
    citire();
    prelucrare();
    printare();

    return 0;
}