Cod sursa(job #2081839)

Utilizator vladstanciuVlad Stanciu vladstanciu Data 5 decembrie 2017 11:09:45
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
include <fstream>

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

int v[16001],n,k;

const int L=27;

bool sepoate(int x)
{
   int i,cc=0,nr=0;
   for(i=1;i<=n;i++)
   {
       if(v[i]>cc)
       {
           nr++;
           cc=x;
       }
       if(v[i]>cc) return false;
       if(nr>k) return false;
       cc-=v[i];
   }
   return true;
}

int main()
{
    int pas,i,r;
    pas=1<<L;
    r=0;
    fin>>n>>k;
    for(i=1;i<=n;i++)
        fin>>v[i];
    while(pas!=0)
    {
        if(!sepoate(r+pas)) r+=pas;
        pas/=2;
    }
    r++;
    fout<<r;

    return 0;
}