Cod sursa(job #2426017)

Utilizator sygAndreiIonitaIonita Andrei sygAndreiIonita Data 25 mai 2019 17:40:58
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

int v[16001];

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

bool verif_(int rasp,int k,int n)
{
  int zile=0,i=1,sum=0;
  while (i<=n)
  {
    sum=0;
    while (sum+v[i]<=rasp)
         sum+=v[i],i++;
    zile++;
  }
  if (zile<=k)
    return 1;
  return 0;
}

int main()
{
    int n,k,sum=0,max1=0,mijl,st,dr,poz,i;
    in>>n>>k;
    for (i=1;i<=n;i++)
    {
      in>>v[i];
      sum+=v[i];
      max1=max(max1,v[i]);
    }
    st=max1;
    dr=sum;
    while (st<=dr)
    {
      mijl=(st+dr)/2;
      if (verif_(mijl,k,n)==1)
      {
        poz=mijl;
        dr=mijl-1;
      }
      else
        st=mijl+1;
    }
    out<<poz;
    return 0;
}