Cod sursa(job #3277013)

Utilizator eric_dragosDragos Eric eric_dragos Data 15 februarie 2025 11:15:56
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

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

int n,k,maxC=-1;
vector<int> v;
int drumuri(int x){
    int nr=0, c=x;
    for(int i = 1; i<=n; i++){
        if(c-v[i] <= 0){
            nr++;
            c = x;
        }
        c -= v[i];
    }
    return nr;
}
int main()
{
    fin >> n >> k;
    v.resize(n+1);
    int s = 0;
    for(int i = 1; i<=n; i++){
        fin >> v[i];
        s += v[i];
        maxC = max(maxC, v[i]);
    }
    int l = 1;
    int r = s;
    int ans = 0;
    while(l<r){
        int mid = (l+r)/2;
        int nr = drumuri(mid);
        if(nr > k){
            l = mid+1;
        }
        else {
            ans = mid;
            r = mid-1;
        }
    }
    fout << ans;


    return 0;
}