Pagini recente » Cod sursa (job #2142597) | Cod sursa (job #1732324) | Cod sursa (job #1721918) | Cod sursa (job #790771) | Cod sursa (job #477875)
Cod sursa(job #477875)
#include<fstream>
using namespace std;
const char iname[]="zebughil.in";
const char oname[]="zebughil.out";
const int maxn=17;
const int maxv=(1<<maxn);
ifstream f(iname);
ofstream g(oname);
int dp[maxv],a[maxn],n,t,i,j,G,k;
int main()
{
t=3;
while(t--)
{
f>>n>>G;
for(i=0;i<n;++i)
f>>a[i];
for(i=0;i<(1<<n);++i)
dp[i]=-1;
dp[0]=G;
for(i=1;i<=n;++i)
{
for(j=0;j<(1<<n);++j)
{
if(dp[j]!=-1)
dp[j]=G;
for(k=0;k<n;++k)
if(j&(1<<k)&&dp[j-(1<<k)]-a[k]>dp[j])
dp[j]=dp[j-(1<<k)]-a[k];
}
if(dp[(1<<n)-1]>=0)
break;
}
g<<i<<"\n";
}
}