Pagini recente » Cod sursa (job #580007) | Cod sursa (job #1993866) | Cod sursa (job #1162691) | Cod sursa (job #2280210) | Cod sursa (job #1724882)
#include <cstdio>
#define NIL -1
#define MAXN 17
int d[MAXN+1][1<<MAXN], v[MAXN];
int main(){
int t, n, g, i, j, p, ans;
FILE *fin, *fout;
fin=fopen("zebughil.in", "r");
fout=fopen("zebughil.out", "w");
for(t=3; t; t--){
fscanf(fin, "%d%d", &n, &g);
for(i=0; i<n; i++) fscanf(fin, "%d", &v[i]);
for(i=0; i<=n; i++) for(j=1; j<(1<<n); j++) d[i][j]=NIL;
for(i=1; i<=n; i++){
for(j=1; j<(1<<n); j++){
for(p=0; p<n; p++){
if(j&(1<<p)){
if((d[i-1][j^(1<<p)]!=NIL)&&(d[i][j]<g-v[p])) d[i][j]=g-v[p];
if((d[i][j^(1<<p)]>=v[p])&&(d[i][j]<d[i][j^(1<<p)]-v[p])) d[i][j]=d[i][j^(1<<p)]-v[p];
}
}
}
}
ans=1;
while(d[ans][(1<<n)-1]==NIL) ans++;
fprintf(fout, "%d\n", ans);
}
fclose(fin);
fclose(fout);
return 0;
}