Pagini recente » Cod sursa (job #1988654) | Borderou de evaluare (job #1799306) | Cod sursa (job #1161404) | Borderou de evaluare (job #1377654) | Cod sursa (job #2670193)
#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;
}