Cod sursa(job #2626092)

Utilizator Edwuard99Diaconescu Vlad Edwuard99 Data 6 iunie 2020 11:50:35
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <algorithm>
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,mx=0;
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    fin >> N >> K;
    for (i = 1; i <= N; i++) {
        fin >> a[i];
        mx=max(mx,a[i]);
    }
    fout << CautBin(mx, 16000 * 16000);
 
}