Pagini recente » Cod sursa (job #46978) | Cod sursa (job #2855122) | Cod sursa (job #1395654) | Cod sursa (job #3185174) | Cod sursa (job #2405494)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");
int n,g;
int dp[(1<<18)],a[18];
int main()
{
int t=3;
while(t--)
{
fin>>n>>g;
for(int i=0;i<n;i++)
fin>>a[i];
long long sum;
for(int stare=1;stare<(1<<n);stare++)
{
sum=0;
for(int bit=0;bit<n;bit++)
if(stare & (1<<bit))sum+=a[bit];
if(sum<=g)dp[stare]=1;
else {
dp[stare]=n;
for(int n_stare=((stare - 1) & stare); n_stare>0; n_stare=((n_stare - 1) & stare))
if(dp[n_stare]+dp[stare-n_stare]<dp[stare])
dp[stare]=dp[n_stare]+dp[stare-n_stare];
}
}
fout<<dp[(1<<n)-1]<<"\n";
}
fin.close();
fout.close();
return 0;
}