Cod sursa(job #2862223)

Utilizator CandyBucherGaube Robert Gabriel CandyBucher Data 5 martie 2022 01:10:39
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream o("transport.out");
int v[16000], k, n;
bool verificare(int c)
{
    int i, contor = 0, sum;
    for(i = 0; i < n; i++)
    {
        sum = v[i];
        while(sum <= c && i < n)
        {
            i++;
            sum += v[i];
        }
        i--;
        contor++;
    }
    if(contor > k)
    {
        return 0;
    }
    return 1;
}

int main()
{
    int l = 0, r = 0, i, m;
    f >> n >> k;
    for(i = 0; i < n; i++)
    {
        f >> v[i];
        l = v[i] > l ? v[i] : l;
        r += v[i];
    }
    while(l < r)
    {
        m = (l + r) / 2;
        if(verificare(m))
        {
            r = m;
        }
        else
        {
            l = m + 1;
        }
    }
    o << r;
    f.close();
    o.close();
    return 0;
}