Cod sursa(job #3358055)

Utilizator brianabucur11Briana Bucur brianabucur11 Data 14 iunie 2026 11:40:49
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

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

const int nmax = 16e3 + 5;

int n, k, v[nmax];

bool check (int x)
{
    int cnt = 1, s = 0;
    for (int i = 1; i <= n; i++)
    {
        if (v[i] > x)
            return false;
        if (s + v[i] > x)
        {
            cnt++;
            s = 0;
        }
        s += v[i];
    }
    return cnt <= k;
}

int cb ()
{
    int origin = 0;
    for (int bit = 1 << 27; bit; bit >>= 1)
    {
        if (!check (origin + bit))
            origin += bit;
    }
    return origin + 1;
}

signed main ()
{
    fin >> n >> k;
    for (int i = 1; i <= n; i++)
        fin >> v[i];
    fout << cb ();
    return 0;
}