Cod sursa(job #2916981)

Utilizator AlexandruBenescuAlexandru Benescu AlexandruBenescu Data 2 august 2022 16:28:56
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
#define L 16005
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[L], n;

int solve(int c){
  int i, s = 0, k = 1;
  for (i = 1; i <= n; i++){
    if (s + v[i] > c){
      k++;
      s = v[i];
    }
    else
      s += v[i];
  }
  return k;
}

int main(){
  int k, i, le, ri, mid, best;
  fin >> n >> k;
  le = best = 1;
  for (i = 1; i <= n; i++){
    fin >> v[i];
    le = max(le, v[i]);
  }
  ri = L * L;
  while (le <= ri){
    mid = (le + ri) / 2;
    if (solve(mid) <= k){
      best = mid;
      ri = mid - 1;
    }
    else
      le = mid + 1;
  }
  fout << best << "\n";
  return 0;
}