Cod sursa(job #2091293)

Utilizator andreiomd1Onut Andrei andreiomd1 Data 19 decembrie 2017 15:03:59
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;

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

int n,k,a[16005],i;
bool verificare (int valoare)
{
    int i=1;
    int transporturi=0;
    int s=0;

    while(i<=n && a[i]<=valoare)
    {
        s=0;
        while(s+a[i]<=valoare && i<=n)
        {
            s=s+a[i];
            i++;
        }
        transporturi++;
    }

    if(transporturi<=k && i==n+1)
        return true;
    else
        return false;
}

int main()
{
    f>>n>>k;

    for(i=1; i<=n; i++)
        f>>a[i];

    long long int step=1<<28;
    long long int step2=0;
    while(step)
    {
        if(verificare(step+step2)==false)
            step2+=step;
        step/=2;
    }
    step2++;
    g<<step2<<'\n';
    return 0;
}