Cod sursa(job #2670193)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 9 noiembrie 2020 13:08:22
Problema Zebughil Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("zebughil.in");
ofstream fout ("zebughil.out");
#define NMAX 131075
int dp [NMAX], v [19], N, G;
int main (){
    for (int o = 1; o <= 3; o ++){
        fin >> N >> G;
        for (int i = 0; i < N; i ++)
            fin >> v [i];
        for (int config = 1; config < (1 << N); config ++){
            int sum = 0;
            for (int j = 0; j < N; j ++){
                if ((config & (1 << j)) != 0)
                    sum += v[j];
            }
            if (sum <= G)dp [config] = 1;
            else{
                dp [config] = N;
                for(int new_config = (config & (config - 1)); new_config; new_config = (new_config - 1) & config){
                    if (dp [new_config] + dp [config ^ new_config] < dp [config])
                        dp [config] = dp [new_config] + dp [config ^ new_config];
                }
            }
        }
        fout << dp [(1 << N) - 1] << '\n';
    }
    return 0;
}