Cod sursa(job #2370330)

Utilizator andreisontea01Andrei Sontea andreisontea01 Data 6 martie 2019 11:39:05
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

int salt[16005];

int n, k;

bool enough(int vol){
    int sum = 0, cnt = 0;
    for(int i = 1; i <= n; ++i){
        if(vol < salt[i])
            return 0;
        if(sum + salt[i] > vol){
            sum = 0;
            cnt++;
        }
        sum += salt[i];
    }
    if(sum)
        cnt++;
    return (cnt <= k);
}

int main()
{
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    fin >> n >> k;
    for(int i = 1; i <= n; ++i)
        fin >> salt[i];
    int rez = 0, pas = 1 << 30;
    while(pas){
        if(!enough(rez + pas))
            rez += pas;
        pas /= 2;
    }
    fout << rez + 1;
    return 0;
}