Cod sursa(job #3001957)

Utilizator rapatudorRapa Balan Tudor Florin rapatudor Data 14 martie 2023 09:30:28
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 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){
        cout<<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(l>0)
            it++;
        if(it<=K){
            d = mid-1;
        } else {
            s = mid+1;
        }
    }
    fout<<s;
    return 0;
}