Cod sursa(job #3321902)

Utilizator Andreea3425Diaconu Andreea Andreea3425 Data 11 noiembrie 2025 18:39:23
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

#define N 16000

int v[N+1];

int check(int mij, int n, int k){
    int i, j, s;

    i = j = 1;
    while (j <= k){
        s = 0;
        while (s + v[i] <= mij && i <= n)
            s += v[i++];
        if (i - 1 == n)
            return 1;
        j++;
    }

    return 0;
}

int main()
{
    ifstream cin ("transport.in");
    ofstream cout ("transport.out");

    int n, k, i, st, dr, mij;

    cin >> n >> k;
    for (i=1; i<=n; i++)
        cin >> v[i];

    st = 1;
    dr = N * N;
    while (st <= dr){
        mij = (st+dr) / 2;
        if (check(mij, n, k))
            dr = mij - 1;
        else
            st = mij + 1;
    }

    cout << dr + 1 << '\n';

    return 0;
}