Cod sursa(job #1592187)

Utilizator razvandRazvan Dumitru razvand Data 7 februarie 2016 10:33:15
Problema Transport Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("transport.in");
ofstream out("transport.out");

int v[16003];
int n,k;

bool verif(int V, int st, int am) {

    int cap = 0;
    //cout << V << " " << st << " " << am << "  " << (st >= n-1) << " " << (am == k) << endl;
    if(st >= n && am == k)
        return 1;
    if(am > k) {
        return 0;
    }
    while(true) {
        if(cap + v[st] > V || st > n)
            break;
        cap += v[st];
        st++;
    }

    return verif(V, st, am+1);

}

int main() {

    in >> n >> k;

    int V = 0;

    for(int i = 0; i < n; i++) {
        in >> v[i];
        if(v[i] > V)
            V = v[i];
    }

    while(true) {

        if(verif(V, 0, 0)) {

            out << V;
            return 0;

        }

        V++;

    }

   // cout << verif(12313, 0, 0);am == k-1

    return 0;
}