Pagini recente » Cod sursa (job #673644) | Cod sursa (job #1054737) | Cod sursa (job #2713948) | Cod sursa (job #1390077) | Cod sursa (job #481139)
Cod sursa(job #481139)
# include <fstream>
# include <iostream>
using namespace std;
int n, g, v[20], best[(1<<17)+1][32], sol;
void go (int i, int j)
{
for(int k=1;k<=n;++k)
if ((i&(1<<k))==0)
{
if (v[k]<=best[i][j])
{
best[i+(1<<k)][j]-=v[k];
go(i+(1<<k), j);
}
else
{
best[i+(1<<k)][j+1]=g-v[k];
go(i+(1<<k), j+1);
}
}
if ((1<<n)-1==i && j<sol)
sol=j;
}
int main ()
{
ifstream fin ("zebughil.in");
ofstream fout ("zebughil.out");
for(int i=1;i<4;++i)
{
fin>>n>>g;
for(int i=1;i<=n;++i)
fin>>v[i];
sol=1<<5;
for(int i=1;i<=n;++i)
{
best[1<<i][1]=g-v[i];
go(i, 1);
}
fout<<sol<<"\n";
}
return 0;
}