Pagini recente » Cod sursa (job #1848762) | Cod sursa (job #804162) | Cod sursa (job #1646744) | Cod sursa (job #811009) | Cod sursa (job #588302)
Cod sursa(job #588302)
#include<fstream>
#define OB 17
#define M (1<<17)
using namespace std;
ifstream in("zebughil.in");
ofstream out("zebughil.out");
int best[OB],g[M];
int n,G,k,i,j,t;
int main()
{
for(t=3;t;--t)
{
in>>n>>G;
for(i=0;i<n;++i)in>>g[i];
for(i=0;i<(1<<n);++i)
best[i]=-1;
best[0]=G;
for(i=1;i<=n;++i)
{
for(j=0;j<(1<<n);++j)
{
if(best[j]!=-1)
best[j]=G;
for(k=0;k<n;++k)
if(j&(1<<k)&&best[j-(1<<k)]-g[k]>best[j])
best[j]=best[j-(1<<k)]-g[k];
}
if(best[(1<<n)-1]>=0)
break;
}
out<<i<<"\n";
}
in.close();
out.close();
return 0;
}