Cod sursa(job #2528611)

Utilizator davalxdavid alex davalx Data 22 ianuarie 2020 11:13:20
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb

#include <fstream>



using namespace std;



ifstream in ("transport.in");

ofstream out ("transport.out");



const int VM = 17000;

int v [VM + 1], maxs;



int transporturi (int x, int k, int n) {

  int s, t;

  s = t = 0;

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

    s += v [i];

    if (s > x) {

      s = v [i];

      t ++;

    }

  }

  return t + 1;

}



int cbin (int n, int k) {

  int st, dr, m;

  st = maxs; dr = 256000000;

  while (st < dr) {

    m = (st + dr) / 2;

    if (transporturi (m, k, n) > k)

      st = m + 1;

    else

      dr = m;

  }

  return st;

}



int main() {

  int n, k, r;

  in >> n >> k;

  maxs = 0;

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

    in >> v [i];

    maxs = max (maxs, v [i]);

  }

  r = cbin (n, k);

  out << r;

  return 0;

}