Cod sursa(job #2863667)

Utilizator mgorganGorgan Maria mgorgan Data 7 martie 2022 02:15:11
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

using namespace std;

ifstream cin("transport.in");
ofstream cout("transport.out");

int main()
{
    int n, i, k, p, nr, s, gasit, m;
    long long u;
    cin >> n >> k;
    int v[100000];
    for (i = 1;i <= n;i++)
        cin >> v[i];
    p = 1;
    u=16000*16000;
    //u = 100;
    gasit = 0;
    while (p <= u)
    {
        m = (u + p) / 2;
        s = 0;
        nr = 0;
        for (i = 1;i <= n;i++)
        {
            s = s + v[i];
            if (s > m)
            {
                nr++;
                s = v[i];
            }
            else if (s == m) {
                nr++;
                s = 0;
            }
            if (i == n && s>0 && s<=m) nr++;

        }
        if (nr <= k) {
            u = m - 1;

            gasit = m;

        }
            else p = m + 1;
        }

    cout << gasit;
    return 0;
}