Cod sursa(job #3368024)

Utilizator Albert_PrimeAlbert Olariu Albert_Prime Data 12 octombrie 2026 20:39:22
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,k;
int v[16003];

bool valid(int x){
    int cnt=1;
    int sum=0;
    for (int i=0;i<n;i++){
        if(sum+v[i]>x){
            cnt++;
            sum=v[i];
        } else sum+=v[i];
    }
    return cnt<=k;
}

int main() {
    cin>>n>>k;
    int l=0, r=0;
    int a;
    for (int i=0;i<n;i++) {
        cin>>a;
        v[i]=a;
        l= max(l,a);
        r+=a;
    }
    while (l<r) {
        int m=(l+r)/2;
        if(valid(m))r=m;
        else l=m+1;
    }
    cout<< l<<"\n";
}