Cod sursa(job #3166169)

Utilizator Linca_AmaliaLinca Mihaela Amalia Linca_Amalia Data 7 noiembrie 2023 19:58:12
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;

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

int n, k, v[16005], mid;

int t(int x){
    int s = v[1];
    int nr = 1;
    for (int i = 2; i <= n; i++){
        if ( s + v[i] <= x )
            s += v[i];
        else{
            nr++;
            s = v[i];
        }
    }
    return nr;
}

int main(){
    fin >> n >> k;

    int maxim = 1;
    for (int i = 1; i <= n; i++){
        fin >> v[i];
        if ( maxim < v[i] )
            maxim = v[i];
    }

    int st = maxim;
    int dr = 2e9;
    while ( st <= dr ){
        mid = (st + dr)/2;
        if ( t(mid) > k )
            st = mid + 1;
        else
            dr = mid - 1;
    }
    fout << st;
    return 0;
}