Cod sursa(job #2082276)

Utilizator ioana_99Ioana Marin ioana_99 Data 5 decembrie 2017 21:45:08
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("transport.in");
ofstream g("transport.out");
int v[16001],n,k;
bool se_poate(int c)
{
    //ret true daca toate saltelele pot fi incarcate folosid <=k  transporturi de camioane cu capacitate c
    int cc,nr=0;
    cc=0;
    for(int i=0; i<n; i++)
    {
        if(v[i]>c)
        {
            return false;
        }
        if(v[i]>cc)
        {
            nr++;
            cc=c;
        }
        cc-=v[i];
        if(nr>k)
        {
            return false;
        }

    }
    return true;
}


int main()
{
    f>>n>>k;
    for(int i=0; i<n; i++)
    {
    f>>v[i];

    }
     int pas,r;
  pas=1<<27;
            r=0;
            while(pas!=0)
            {

                if(!se_poate(r+pas))
                {
                    r+=pas;
                }
                pas/=2;

            }
  r++;
  g<<r;

    return 0;
}