Cod sursa(job #2831145)

Utilizator antonio_sefu_tauLaslau Antonio antonio_sefu_tau Data 10 ianuarie 2022 21:20:55
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb

#include <bits/stdc++.h>
#define ll long long

using namespace std;

const int dim = 16005;
ll a[dim], n, k;

ll HowMany(ll cap)
{
    ll trans = 1, s = 0;
    for(ll i = 1; i <= n; i++)
    {
        if(s + a[i] <= cap)
            s += a[i];
        else
            trans++, s = a[i];
    }
    return trans;
}

int main()
{
    ifstream f("transport.in");
    ofstream g("transport.out");
    f >> n >> k;
    for(ll i = 1; i <= n; i++)
        f >> a[i];
    ll left = 1, right = 256000000, sol;
    while(left <= right)
    {
        ll mid = (left + right) / 2;
        if(HowMany(mid) <= k)
            right = mid - 1, sol = mid;
        else
            left = mid + 1;
    }
    g << 1LL * sol;
    return 0;
}