Cod sursa(job #2269247)

Utilizator GarboteialexGarbotei Alex Garboteialex Data 25 octombrie 2018 19:55:19
Problema Zebughil Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 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 camion[20];
int rez, act;

void bkt(int pas) {
    if(pas == N + 1) {
        if(act < rez)
            rez = act;
        
        return;
    } else
        for(int i = 1; i <= N; i++)
            if(!used[i]) {
                used[i] = 1;
                
                if(camion[act] + bloc[i] <= G)
                    camion[act] += bloc[i];
                else
                    camion[++act] = bloc[i];
            
                bkt(pas + 1);
                
                used[i] = 0;
                
                camion[act] -= bloc[i];
                if(camion[act] == 0 && act > 1)
                    --act;
            }
}

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