Cod sursa(job #3254111)

Utilizator Eric_RadavoiRadavoi Eric Radavoi Eric_Radavoi Data 6 noiembrie 2024 09:30:24
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>

using namespace std;

int v[16001];

int main()
{
    int st, dr, k, n, i, s = 1, sol, mij, maxi = 0, nrt;
    cin >> n >> k;

    for (i = 1; i<=n; i++)
    {
         cin >> v[i];
         if (v[i] > maxi)
             maxi = v[i];
    }

    st = maxi;
    dr = s;
    sol = -1;

    while (st <= dr)
    {
           mij = (st + dr) / 2;
           s = 0;
           nrt = 1;
           for (i = 1; i<=n; i++)
           {
                if (s + v[i] <= mij)
                {
                    s += v[i];
                }

                else
                {
                    nrt++;
                    s = v[i];
                }
           }

           if (nrt > k)
           {
               st = mij + 1;
           }

           else
           {
               sol = mij;
               dr = mij - 1;
           }
    }
    cout << sol;
    return 0;
}








//6 3
//7       maxi = 7      dr = 7  st = 1
//3
//2
//3
//1
//4