Cod sursa(job #2739780)

Utilizator andreicosmaAndrei Cosma andreicosma Data 9 aprilie 2021 22:31:58
Problema Transport Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>

using namespace std;
string file = "transport";
ifstream fin( file + ".in" );
ofstream fout( file + ".out" );
int n, k, v[16005],x;


inline bool capacitate( long long val ){
    long long s = 0, nr = 1;
    for( int i = 1; i < n; ++i ){
        s+=v[i];
        if( s > val )
            return 0;
        if( s + v[i+1] > val ){
            s = 0;
            nr++;
        }
    }
    if(nr <= k)
        return true;
    return false;
}
inline void citire(){
    fin>>n>>k;
    for( int i = 1; i <= n; ++i )
        fin>>v[i];
}
int main(){
    citire();
    long long st = 1;
    long long dr = 16000*16000;
    while( st <= dr ){
        long long mid = (st + dr)/2;
        if(capacitate(mid))
            dr = mid - 1;
        else
            st = mid + 1;
    }
    fout<<st;
    return 0;
}