Cod sursa(job #3162651)

Utilizator luca_cristea1da test luca_cristea1 Data 29 octombrie 2023 16:38:00
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>

#include <fstream>
using namespace std;
int n ,k , i, c=-1, nr, S, mij, st, dr, s, a, b, v[16001] ;
ifstream f ("transport.in");
ofstream g ("transport.out");

int main()
{
    f >> n >> k ;
    for(i = 1; i <= n ; ++i)
        {
        f >> v[i] ;
        a += v[i] ;
        if(v[i] > c)
            c = v[i] ;
    }

    st = c;
    dr = a;
    while(st <= dr)
    {
        mij = (st + dr) / 2 ;
        nr = 1 ;
        s = 0 ;
        for(i = 1; i <= n; ++i)
            if(s + v[i]  <= mij)
                s += v[i];
            else
            {
                ++nr ;
                s = v[i] ;
            }

        if(nr >  k)
            st = mij + 1 ;
        else
        {
            S = mij ;
            dr = mij - 1 ;
        }
    }
    g << S ;
    return 0 ;
}