Cod sursa(job #2366433)

Utilizator AlexNic_Nicula Dan Alexandru AlexNic_ Data 4 martie 2019 20:05:27
Problema Transport Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

int v[16001];
int main()
{
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    int i,N,K,st,dr=0,k2,sol,m,ox;
    fin>>N>>K;
    for(i=1;i<=N;i++){
        fin>>v[i];
        dr+=v[i];
    }
    st=v[1];
    sol=1000000;
    int cst=st;
    int cdr=dr;
    while(st<=dr && st>=cst && dr>=cst){
        m=(st+dr)/2;
        ox=0;
        k2=1;
        for(i=1;i<=N;i++){
            ox+=v[i];
            if(ox>m){
                ox=0;
                ox+=v[i];
                k2++;
            }
        }
        if(k2<=K && m<sol){
            dr=m-1;
            sol=m;
        }
        else
            st=m+1;

    }
    fout<<sol;
    return 0;
}