Cod sursa(job #3304529)

Utilizator ccris.29Chirila Cristian ccris.29 Data 24 iulie 2025 15:49:39
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("transport.in");
ofstream fout("transport.out");

int a[16001], n, k;
int verif(int val)
{
    int j = 1, i = 1, s;
    while (j <= k)
    {

        s = 0;
        while (s + a[i] <= val && i <= n)
        {

            s += a[i];
            i++;
        }

        if (i - 1 == n)
        {

            return 1;
        }
        j++;
    }

    return 0;
}
int caut(int a[], int lf, int rg)
{
    int mid = (lf + rg) / 2;
    if (lf > rg)
    {

        return 16000 * 16000 + 1;
    }
    if (verif(mid) == 1)
    {

        return min(mid, caut(a, lf, mid - 1));
    }
    else
    {

        return caut(a, mid + 1, rg);
    }
}
int main()
{

    int val = 0;
    fin >> n >> k;

    for (int i = 1; i <= n; i++)
    {

        fin >> a[i];
    }
    fout << caut(a, 1, 16000 * 16000);

    return 0;
}