Pagini recente » Cod sursa (job #306278) | Cod sursa (job #1865882) | Cod sursa (job #1890699) | Cod sursa (job #2780442) | Cod sursa (job #2405489)
#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+1;
for(int n_stare=((stare - 1) & stare); n_stare>0; n_stare=((n_stare - 1) & stare))
dp[stare]=min(dp[stare],dp[n_stare]+dp[stare-n_stare]);
}
}
fout<<dp[(1<<n)-1]<<"\n";
}
fin.close();
fout.close();
return 0;
}