Cod sursa(job #3274296)

Utilizator SimifilLavrente Simion Simifil Data 6 februarie 2025 01:50:53
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");

int main() {
	int n, k;
    f >> n >> k;
    int v[n+1];
    for( int i = 1; i <= n; ++i )
    {
        f >> v[i];
    }
    long long st = 1, dr = 256000001, mij;
    while( st < dr )
    {
        mij = st + (dr-st)/2;
        ///[st, mij] [mij+1, dr]
        int cnt = 0;
        long long q = 0;
        for( int i = 1; i <= n; ++i )
        {
            if( q + v[i] >= mij )
                ++cnt, q = 0;
            q += v[i];
        }
        if( q >= mij )
            ++cnt;
        //cout << mij << " " << cnt << "\n";
        if( cnt <= k )
            dr = mij;
        else
            st = mij+1;
    }
    g << st;
    return 0;
}