Pagini recente » Cod sursa (job #1883866) | Cod sursa (job #517874) | Cod sursa (job #206247) | Cod sursa (job #2130483) | Cod sursa (job #838976)
Cod sursa(job #838976)
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
int dp[131085][20],a[20];
int main()
{
ifstream f("zebughil.in");
ofstream gg("zebughil.out");
for(int t=1;t<=3;++t)
{
int n,g,p;
memset(dp,-1,sizeof(dp));
f>>n>>g;
for(int i=1;i<=n;++i)
f>>a[i];
dp[1][1]=0;
for(int i=0;i<(1<<n);++i)
{
for(int c=1; c<=n ;++c)
{
dp[0][c]=0;
if(dp[i][c]!=-1)
for(int j=0;j<n;++j)
if(! (( i >> j) & 1) )
{
int next_config= ( i| 1<<j );
if(g>=a[j+1]+dp[i][c])
dp[next_config][c]=max( dp[next_config][c],dp[i][c]+a[j+1]);
else
dp[next_config][1+c]=max(dp[next_config][1+c],a[j+1]);
}
}
}
for(p=1;dp[(1<<n)-1][p]==-1;++p);
gg<<p<<"\n";
}
return 0;
}