Cod sursa(job #2621923)

Utilizator yoanaIoana Grigore yoana Data 31 mai 2020 00:31:10
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb

#include <fstream>
std::ifstream f("transport.in");
std::ofstream g("transport.out");
int main(){

    int n, i=0, x,k, v[17000], maxx = 0, s = 0;
    f>>n>>k;
   while(f>>x)
    {i++;
       v[i]=x;
        if(v[i] > maxx)///aflu elementul maxim
            maxx = v[i];
        s += v[i];///fac suma numerelor
    }
    int ss=0,l = maxx, r = s, mid, ok=0 , R = 257000000;///l-left, r-right
    while(l <= r)
    {
        mid = (l + r) / 2;
        ss = 0;
        ok = 0;
        for(i=1; i<=n; i++)
        {
            ss += v[i];
            if(mid<ss)
            {
                ok++;
                ss = v[i];
            }
        }
        ok++;
        if(k>=ok)
        {
            r = mid - 1;
            if(mid < R)
                R = mid;
        }
        else
            l = mid + 1;
    }
g<<R;
    return 0;
}