Cod sursa(job #2483660)

Utilizator stan_flaviusStan Flavius Stefan stan_flavius Data 30 octombrie 2019 02:38:24
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <algorithm>
#define nmax 16001

using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");

int nr_saltele,nr_max_transp;
int v_saltea[nmax];
long long sol_capacitate;

int calc(int capacitate)
{
    int ct_transporturi=1;
    int volum_transport=0;
    for(int i=1; i<=nr_saltele; i++)
        {
            volum_transport+=v_saltea[i];
            if(volum_transport>capacitate) {volum_transport=v_saltea[i]; ct_transporturi++;}
        }
    return ct_transporturi;
}

int main()
{
    fin>>nr_saltele>>nr_max_transp;
    for(int i=1; i<=nr_saltele; i++)
        {
            fin>>v_saltea[i];
        }

    long long capacitate=1e18;
    sol_capacitate=0;
    while(capacitate>0)
        {
            if(calc(sol_capacitate+capacitate)>nr_max_transp)
                sol_capacitate+=capacitate;
            capacitate/=2;
        }

    fout<<sol_capacitate+1;
    return 0;
}