Cod sursa(job #1140594)

Utilizator lacraruraduRadu Matei Lacraru lacraruradu Data 12 martie 2014 09:20:11
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

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

int v[16001], n, k;

bool f(int capacitate)
{
    int i, nr, sum;

    nr = 1;
    sum = 0;
    for(i = 1; i <= n; i++)
    {
        if(v[i] < capacitate)
            return 0;
        if(sum + v[i] <= capacitate)
            sum += v[i];
        else
        {
            nr++;
            sum = v[i];
        }
    }

    return (nr <= k);
}

int main()
{
    int i, pas;

    in>>n>>k;

    for(i = 1; i <= n; i++)
        in>>v[i];

    i = 0;
    pas = 1 << 27;
    while(pas)
    {
        if(!f(i + pas))
            i += pas;
        pas /= 2;
    }

    out<<i + 1<<'\n';
    return 0;
}