Cod sursa(job #1574322)

Utilizator tudoras8tudoras8 tudoras8 Data 20 ianuarie 2016 15:04:37
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

int n, k, ans;
vector<int> v;

int routes(int capacity) {
    int res = 0;

    int i = 0;
    while (i < n) {
        int t = 0;
        while (i < n && t < capacity) {
            t += v[i];
            ++i;
        }
        ++res;
    }
    ++res;

    return res;
}

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

    cin >> n >> k;

    for (int i = 0; i < n; ++i) {
        int x;
        cin >> x;
        v.push_back(x);
    }

    int lo = 1, hi = 16000 * 16000;
    while (hi - lo > 1) {
        int mid = lo + (hi - lo) / 2;

        if (routes(mid) <= k) {
            hi = mid;
        } else {
            lo = mid;
        }
    }
    cout << hi;

    return 0;
}