Cod sursa(job #2890310)

Utilizator hobbitczxdumnezEU hobbitczx Data 15 aprilie 2022 11:42:27
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>
#define ll long long
#define INF 0x3F3F3F3F
using namespace std;

const string fisier = "transport";

ifstream fin (fisier + ".in");
ofstream fout (fisier + ".out");

const int N_MAX = 1e5 + 5;

int n , a[N_MAX] , k;

int solve (int x){
    int cnt = 1 , sum = a[1];
    for (int i=2; i<=n; i++){
        sum += a[i];
        if (sum > x){
            sum = a[i];
            cnt += 1;
        }
    }
    return cnt;
}

int cb(){
    int st = 1 , dr = 1e9 , ans = 1e9;
    while (st <= dr){
        int mij = (st + dr) / 2;
        if (solve(mij) <= k){
            dr = mij - 1;
            ans = min(ans , mij);
        }
        else{
            st = mij + 1;
        }
    }
    return ans;
}

int main(){
    ios_base::sync_with_stdio(false);
    fin >> n >> k;
    for (int i=1; i<=n; i++){
        fin >> a[i];
    }
    fout << cb();
}