Cod sursa(job #2268206)

Utilizator GarboteialexGarbotei Alex Garboteialex Data 24 octombrie 2018 16:28:36
Problema Zebughil Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

using namespace std;

ifstream fin("zebughil.in");
ofstream fout("zebughil.out");

int N,G;
int bloc[20];
int camion[20];
int nrcamioane;
int rez;

void bkt(int bc) {
    if(bc == N + 1) {
        if(nrcamioane < rez)
            rez = nrcamioane;
        return;
    } else {
        for(int i = 1; i <= N; i++)
            if(camion[i] + bloc[bc] <= G) {
                if(camion[i] == 0)
                    nrcamioane++;
                camion[i] += bloc[bc];
                
                bkt(bc + 1);
                
                if(camion[i] == bloc[bc])
                    nrcamioane--;
                camion[i] -= bloc[bc];
            }
    }
}

int main() {
    for(int j = 1; j <= 3; j++) {
        fin >> N >> G;
        for(int i = 1; i <= N; i++)
            fin >> bloc[i];
        
        rez = N;
        bkt(1);
        fout << rez << '\n';
    }
    
    return 0;
}