Cod sursa(job #2955962)

Utilizator Tudose_StefanTudose Alexandru Stefan Tudose_Stefan Data 18 decembrie 2022 13:10:14
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
#define int long long

using namespace std;

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

int n, k, i, maxx, sum, st, dr, mid, transp, capCur, v[16000];

int32_t main()
{
    fin >> n >> k;
    for (i = 0; i < n; ++i){
        fin >> v[i];
        sum += v[i];
        maxx = max(maxx, v[i]);
    }
    st = maxx; dr = sum;
    while (st <= dr){
        mid = (st + dr) / 2;
        transp = 1; capCur = 0;
        for (i = 0; i < n; ++i){
            capCur += v[i];
            if (capCur > mid){
                capCur = v[i];
                transp++;
            }
        }
        if (transp > k)
            st = mid + 1;
        else
            dr = mid - 1;
    }
    fout << st;
    return 0;
}