Cod sursa(job #2916979)

Utilizator AlexandruBenescuAlexandru Benescu AlexandruBenescu Data 2 august 2022 16:21:45
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 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;
  for (i = 1; i <= n; i++)
    fin >> v[i];
  le = best = 1;
  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;
}