Cod sursa(job #2924401)

Utilizator AlexandruIoan20Moraru Ioan Alexandru AlexandruIoan20 Data 1 octombrie 2022 17:59:56
Problema Transport Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int N, v[30],k;

int tr (int c) {
    int sum = 0, dr=0;
    for(int i=1; i<=N; i++) {
        while (sum+v[i]<=c) {
            sum+=v[i];
            i++;
        } 
        i--;
        dr++;
        sum=0;
    }
    return dr;
}


int main (){
    int s=0, mx=0;
    fin>>N>>k;
    for(int i=1; i<=N; i++) {
        fin>>v[i];
        s+=v[i];
        if (v[i] > mx)
            mx = v[i];
    }

    int l=mx,r=s, mid, sol;
    while (l<=r) {
        mid = l + (r-l)/2;
        if (tr(mid)<=k) {
            sol = mid;
            r=mid-1;
        }
        else l=mid + 1;
    }
    fout<<sol;

    fin.close();
    fout.close();
    return 0;
}