Pagini recente » Cod sursa (job #1651994) | Cod sursa (job #2492881) | Cod sursa (job #2744700) | Cod sursa (job #1680423) | Cod sursa (job #3173848)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");
long long n,v[20],d[(1<<18)][3],G;
int main()
{
for(int z=1; z<=3; z++)
{
fin>>n>>G;
for(int i=0; i<n; i++)
fin>>v[i];
for(int i=0; i<(1<<n); i++)
{
d[i][1]=INT_MAX;
d[i][2]=0;
}
d[0][1]=1;
for(int i=1; i<(1<<n); i++)
for(int p=0; p<n; p++)
if(i&(1<<p))
{
int k=i-(1<<p);
if(d[k][2]+v[p]<=G)
{
if(d[k][1]<d[i][1]||(d[k][1]==d[i][1]&&d[k][2]+v[p]<d[i][2]))
{
d[i][1]=d[k][1];
d[i][2]=d[k][2]+v[p];
}
}
else if(d[k][1]+1<d[i][1]||(d[k][1]+1==d[i][1]&&v[p]<d[i][2]))
{
d[i][1]=d[k][1]+1;
d[i][2]=v[p];
}
}
fout<<d[(1<<n)-1][1]<<'\n';
}
return 0;
}