Cod sursa(job #2528709)

Utilizator VladPislaruPislaru Vlad Rares VladPislaru Data 22 ianuarie 2020 13:40:13
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int a[16003], n, M, k;
int Test (int C)
{
    int s ,cnt, i;
    s = 0;
    cnt = 1;
    for (i = 1; i <= n; i++)
    {
        if (a[i] > C) return 0;
        if (s + a[i] <= C)
            s += a[i];
        else  {cnt ++; s = a[i];}

    }
    return (cnt <= k);
}
int Cb ()
{
    int st , dr, mij, p;
    st = 1;
    dr = 256000000;
    p = 1;
    while (st <= dr)
    {
        mij = (st + dr) / 2;
        if (Test(mij) == 1)
        {
            p = mij;
            dr = mij - 1;
        }
        else st = mij + 1;
    }
    return p;
}
int main()
{
    fin >> n >> k;
    for (int i = 1; i <= n; i++)

            fin >> a[i];


    fout << Cb();
    return 0;
}