Pagini recente » Cod sursa (job #810842) | Cod sursa (job #2451681) | Cod sursa (job #2506027) | Cod sursa (job #1331001) | Cod sursa (job #1009349)
#include <iostream>
#include <fstream>
#include <cstring>
#define one(x) (x&(x-1))^x
using namespace std;
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");
int sol[1<<17],sum[1<<17],numb[1<<17],n,g,inf=2147000000;
void Solve()
{ int i,j;
for(i=1;i<(1<<n);i++)
sum[i]=sum[i&(i-1)]+sol[one(i)];
for(i=1;i<(1<<n);i++)
if (sum[i]<=g) sol[i]=1;
else sol[i]=inf;
for(i=1;i<(1<<n);i++)
for(j=i&(i-1);j>0;j=i&(j-1))
if (sol[j] && sol[j^i])
sol[i]=min(sol[i],sol[j]+sol[j^i]);
fout<<sol[((1<<n)-1)]<<"\n";
}
int main()
{ int i,j;
for(i=1;i<=3;i++)
{ fin>>n>>g;
memset(sol,0,sizeof(sol));
memset(sum,0,sizeof(sum));
for(j=n-1;j>=0;j--) fin>>sol[1<<j];
Solve();
}
return 0;
}