Cod sursa(job #3296141)

Utilizator GRIND_to_ONIMedvichi Darius GRIND_to_ONI Data 11 mai 2025 18:34:01
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
using namespace std;

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

int n, k, v[16001], maxim = -1;

int f(int capacitate)
{
    int incarcatura = 0, transporturi = 1;
    for(int i=1; i <= n; i++)
    {
        incarcatura += v[i];
        if(incarcatura > capacitate)
        {
            transporturi ++;
            incarcatura = v[i];
        }
    }
    return transporturi;
}

int main()
{
    cin >> n >> k;
    for(int i=1; i <= n; i++)
    {
        cin >> v[i];
        if(v[i] > maxim)
            maxim = v[i];
    }
    int st = maxim, dr = 256000000;
    while(st < dr)
    {
        int mij = (st + dr) / 2;
        if(f(mij) <= k)
            dr = mij;
        else st = mij + 1;
    }
    cout << st << endl;
}