Cod sursa(job #3298860)

Utilizator luca.rares.andreiLuca Rares Andrei luca.rares.andrei Data 2 iunie 2025 18:28:43
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
using namespace std;

int n, k;
int v[16001];

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

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

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

    int l = 1, r = 16000*16000, ans = r;
    while(l <= r) {
        int mid = (l+r)/2;
        if (check(mid))
            ans = mid,
            r = mid - 1;
        else
            l = mid + 1;
    }

    cout << ans << '\n';
    return 0;
}