Cod sursa(job #2837920)

Utilizator MariusDinsorea32DinsoreanMarius MariusDinsorea32 Data 22 ianuarie 2022 21:08:36
Problema Transport Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <iomanip>
#include <fstream>
#include <deque>
using namespace std;

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

const int N = 16000;
long long n, i, k, l, r, mid, ans, s, nr, sum, mx = -1;
long long v[N];

int main()
{

    fin >> n >> k;
    for(i = 1; i <= n; i++)
        fin >> v[i], mx = max(mx, v[i]), sum += v[i];
    l = mx; r = sum;
    while(l <= r){
        mid = l + (r - l) / 2;
        i = 1;
        nr = 0;
        while(i <= n && nr <= k){
            s += v[i];
            if(s > mid) s = 0, nr++;
            else i++;
        }
        // fout << nr << " " << mid << "\n";
        if(nr <= k) ans = mid, r = mid - 1;
        else l = mid + 1;
    }
    fout << ans;
    return 0;
}