Cod sursa(job #2181294)

Utilizator RaduNRadu Negovan RaduN Data 21 martie 2018 16:34:03
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int v[16001], n, k;
bool e_bun(int c) {
    int nr=0, cc=0;
    for (int i=0; i<n; i++) {
        if (cc<v[i]) {
            cc=c;
            nr++;
        }
        if (cc<v[i]) {
            return false;
        }
        if (nr>k) {
            return false;
        }
        cc-=v[i];
    }
    return true;
}

int main() {
    f>>n>>k;
    for (int i=0; i<n; i++) {
        f>>v[i];
    }
    int pas=1<<28, c=0;
    while (pas!=0) {
        if (!e_bun(pas+c)) {
            c+=pas;
        }
        pas/=2;
    }
    g<<c+1;
    return 0;
}