Cod sursa(job #3001870)

Utilizator rapatudorRapa Balan Tudor Florin rapatudor Data 13 martie 2023 23:24:37
Problema Transport Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int main()
{
    int N, K, s = 0, d = 0, mid, l = 0, it = 0;
    fin>>N>>K;
    int a[N];
    for(int i = 0; i<N; i++){
        fin>>a[i];
        d+=a[i];
        if(a[i]>s){
            s = a[i];
        }
    }
    while(s<d){
        mid = (d+s)/2;
        it = 0;
        l = 0;
        for(int i = 0; i<N; i++){
            l+=a[i];
            if(l+a[i+1]>mid){
                it++;
                l = 0;
            }
        }
        if(it<=K){
            d = mid-1;
        } else {
            s = mid+1;
        }
    }
    fout<<(s+d)/2;
    return 0;
}