Cod sursa(job #2717745)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 7 martie 2021 21:23:30
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define ll long long
ifstream fin ("transport.in");
ofstream fout  ("transport.out");
const int NMAX=16005;
ll v[NMAX];
int main()
{
    ll n,k,i,j,maxim=-1,s=0,stot=0,spar=0,mij=0,sta=1,dre=1,kon=0,rasp,ltotal,traseucuren=0;
    fin>>n>>k;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
        if(maxim<v[i])
            maxim=v[i];
    }
    /*for(i=1;i<=n;i++)
    {
        if(maxim<v[i])
            maxim=v[i];
    }*/
    sta=maxim;
    for(i=1;i<=n;i++)
        stot+=v[i];
    dre=stot;
    while(sta<=dre)
    {
        mij=(sta+dre)/2;
        spar=0;
        kon=1;
        for(i=1;i<=n;i++)
        {
            spar+=v[i];
            if(spar>mij)
                spar=v[i],kon++;

        }
        if(kon>k)
            sta=mij+1;
         if(kon<=k)
            rasp=mij,dre=mij-1;
    }
    fout <<rasp<< endl;
    return 0;
}