Cod sursa(job #2830354)

Utilizator antonio_sefu_tauLaslau Antonio antonio_sefu_tau Data 9 ianuarie 2022 19:48:27
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

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

int HowMany(int cap)
{
    int trans = 1, s = 0;
    for(int 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(int i = 1; i <= n; i++)
        f >> a[i];
    int left = 1, right = dim * dim, sol;
    while(left <= right)
    {
        int mid = (left + right) / 2;
        if(HowMany(mid) <= k)
            right = mid - 1, sol = mid;
        else
            left = mid + 1;
    }
    g << sol;
    return 0;
}