Cod sursa(job #2268230)

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

using namespace std;

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

int N,G;
int bloc[20];
int sol[20];
int used[20];
int rez;

void bkt(int pas) {
    if(pas == N + 1) {
        int camionActual = 0;
        int nrcamioane = 1;
        
        for(int i = 1; i <= N; i++) {
            if(camionActual + sol[i] <= G)
                camionActual += sol[i];
            else {
                camionActual = sol[i];
                nrcamioane++;
            }
        }
        if(nrcamioane < rez)
            rez = nrcamioane;
            
        return;
    } else
        for(int i = 1; i <= N; i++)
            if(!used[i]) {
                used[i] = 1;
                sol[pas] = bloc[i];
                bkt(pas + 1);
                used[i] = 0;
            }
}

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;
}