Cod sursa(job #2483132)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 29 octombrie 2019 13:28:45
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>

using namespace std;
int N, K, a[16005];

bool Valid(int x) {
    int ct = 1, i, s = 0;
    for (i = 1; i <= N; i++) {
        s += a[i];
        if (s > x) {
            ct++;
            s = a[i];
        }
    }
    return ct <= K;
}

int CautBin(int st, int dr) {
    int mid = (st + dr) / 2;
    if (st == dr)return mid;
    if (Valid(mid) == 0)return CautBin(mid+1, dr);
    else return CautBin(st, mid);

}

int main() {
    int i;
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    fin >> N >> K;
    for (i = 1; i <= N; i++)
        fin >> a[i];
    fout << CautBin(1, 16000 * 16000);

}