Cod sursa(job #3256021)

Utilizator lauraaaaBanaru Laura lauraaaa Data 12 noiembrie 2024 23:00:22
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;
ifstream cin ("transport.in");
ofstream cout ("transport.out");
int v[16001];
int main()
{
    int n,k,i,maxi=-1,s=0,st,dr,mijl,nr,sol;
    cin >> n >> k;
    for (i=1; i<=n; i++){
        cin >> v[i];
        if (v[i]>maxi) maxi=v[i];
        s+=v[i];
    }
    st=maxi;
    dr=s;
    while (st<=dr){
        mijl=(st+dr)/2;
        nr=1;
        s=0;
        for (i=1; i<=n; i++){
            if (s+v[i]<=mijl){
                s=s+v[i];
            }
            else{
                nr++;
                s=v[i];
            }
        }
        if (nr>k) st=mijl+1;
        else {
            sol=mijl;
            dr=mijl-1;
        }
    }
    cout << sol;
    return 0;
}