Pagini recente » Cod sursa (job #1828043) | Cod sursa (job #2396598) | Cod sursa (job #502497) | Cod sursa (job #1762725) | Cod sursa (job #2201863)
#include<fstream>
using namespace std;
ifstream fi("zebughil.in");
ofstream fo("zebughil.out");
int n,g,A[20],i,j,val,t;
pair<int,int> Dp[131075];
int main()
{
for(t=1; t<=3; t++)
{
fi>>n>>g;
for(i=1; i<=n; i++)
fi>>A[i];
for(i=1; i<(1<<n); i++)
Dp[i]={1000000000,0};
for(i=0; i<(1<<n); i++)
for(j=0; j<n; j++)
if(!(i&(1<<j)))
{
val=i+(1<<j);
if(g-Dp[i].second>=A[j+1])
Dp[val]=min(Dp[val],{Dp[i].first,Dp[i].second+A[j+1]});
else
Dp[val]=min(Dp[val],{Dp[i].first+1,A[j+1]});
}
if(Dp[(1<<n)-1].second>0)
fo<<Dp[(1<<n)-1].first+1<<"\n";
else
fo<<Dp[(1<<n)-1].first<<"\n";
}
fi.close();
fo.close();
return 0;
}