Pagini recente » Cod sursa (job #1126981) | Cod sursa (job #2492509) | Cod sursa (job #1447187) | Cod sursa (job #1978227) | Cod sursa (job #2653337)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");
long long dp[(1<<17)],n,g;
int p[18];
void back_on_track(int poz,int msc,int msc2,long long s)
{
if(poz==n+1)
{
dp[msc]=min(dp[msc],dp[msc2]+1);
return;
}
back_on_track(poz+1,msc*2,msc2*2,s);
if(p[poz]+s<=g)
back_on_track(poz+1,msc*2+1,msc2*2,s+p[poz]);
back_on_track(poz+1,msc*2+1,msc2*2+1,s);
}
int main()
{
for(int i=1;i<=3;i++)
{
int j;
fin>>n>>g;
fill(dp+1,dp+(1<<n),1000000000001);
for(j=1;j<=n;j++)
fin>>p[j];
back_on_track(1,0,0,0);
for(int i=0;i<(1<<n);i++)
cout<<dp[i]<<" ";
cout<<endl;
fout<<dp[(1<<n)-1]<<"\n";
}
}