Cod sursa(job #2563012)

Utilizator LorenaMariaHantig Lorena LorenaMaria Data 29 februarie 2020 21:26:47
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,k,s[16001],st,dr;
bool ok(int x)
{ int g=0,t=0;
  for(int i=1;i<=n;i++)
    if(g+s[i]>x)
       t++,g=s[i];
    else
       g+=s[i];
  if(g>0)
     t++;
  return t<=k;
}
int main()
{ in>>n>>k;
  for(int i=1;i<=n;i++)
    in>>s[i],st=max(st,s[i]),dr+=s[i];
  while(st<=dr)
  { int mij=(st+dr)/2;
    if(ok(mij))
       dr=mij-1;
    else
       st=mij+1;
  }
  out<<st<<'\n';
  in.close();
  out.close();
  return 0;
}