Cod sursa(job #2890967)

Utilizator LelFunXDCirimpei Luca LelFunXD Data 17 aprilie 2022 10:53:59
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16001];
int n, k;
int st, dr;
int main()
{
    fin >> n >> k;
    for(int i = 1; i <= n; i++)
    {
        fin >> v[i];
        dr += v[i];
        st = max(st, v[i]);
    }
    int m, sum, x, poz;
    while(st <= dr)
    {
        m = (st + dr) / 2;
        sum = 0;
        x = 1;
        for(int i = 1; i <= n; i++)
        {
          if(sum + v[i] > m)
          {
              x++;
              sum = v[i];
          }
          else
          sum += v[i];
        }
        if(x > k)
        st = m + 1;
        else
        {
           poz = m;
           dr = m - 1;
        }
    }
    fout << poz;
}