Cod sursa(job #2791779)

Utilizator petru-robuRobu Petru petru-robu Data 31 octombrie 2021 00:30:01
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("transport.in");
ofstream fout("transport.out");


int main()
{
  int n,k,v[16000], cmax=0, cmin=-1;
  fin>>n>>k;
  for(int i=0;i<n;i++)
  {
    fin>>v[i];
    if(v[i]>cmin) cmin=v[i];
    cmax+=v[i];
  }
  cout<<cmax<<' '<<cmin;


  int m, sol, st=cmin, dr=cmax;
  while(st<=dr)
  {
    m=(st+dr)/2;
    int l=1,r=0;
    for(int i=0;i<n;i++)
    {
      if(r+v[i]>m)
      {
        l++;
        r=0;
      }
      r+=v[i];
    }
    if(l<=k)
    {
      sol=m;
      dr=m-1;
    }
    else st=m+1;
  }
  fout<<sol;
}