Mai intai trebuie sa te autentifici.

Cod sursa(job #3364677)

Utilizator RaduPaunTrifRadu Paun Trif RaduPaunTrif Data 9 septembrie 2026 07:59:44
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;

#define int long long

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

const int MX1 = 16 * 1e3;

int n;
int k, cap;
int v[MX1 + 1];

bool fnc(int c) {
    //daca merge pentru capacitatea c, incercam cu una mai mica
    int cnt, s;
    cnt = s = 1;
    --s;
    for(int i = 1; i <= n; ++i) {
        if(v[i] > c)
            return false;
        s += v[i];
        if(s > c)
            ++cnt, s = v[i];
    }
    return !(cnt > k);
}

signed main()
{
    in >> n >> k;
    for(int i = 1; i <= n; ++i)
        in >> v[i];
    int st, dr, mij;
    st = 0, dr = MX1 * MX1;
    int ans;
    while(st < dr) {
        mij = (st + dr) / 2;
        if(fnc(mij))
            ans = mij, dr = mij - 1;
        else
            st = mij + 1;
    }
    out << ans << '\n';
    return 0;
}