Cod sursa(job #3162784)

Utilizator stefan_hcyHuci Stefan stefan_hcy Data 29 octombrie 2023 21:18:39
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
using namespace std;

int v[16001];

int verif(int x, int n, int k)
{
    int i = 0, nr = 0, cant = 0;
    for (i = 1; i <= n; i++)
    {
        if (cant + v[i] <= x)
        {
            cant += v[i];
        }
        else
        {
            if (v[i] > x)
            {
                return 0;
            }
            else
            {
                cant = v[i];
                nr++;
            }
        }
    }
    if (nr + 1 <= k)
    {
        return 1;
    }
    return 0;
}

int main()
{
    int rez, pas, n, k, i;
    ifstream f("transport.in");
    ofstream g("transport.out");
    f >> n >> k;
    for (i = 1; i <= n; i++)
    {
        f >> v[i];
    }
    pas = 1 << 30;
    rez = 0;
    while (pas)
    {
        if (!verif(rez + pas, n, k))
        {
            rez += pas;
        }
        pas /= 2;
    }
    g << rez + 1 << endl;

    return 0;
}