Pagini recente » Istoria paginii utilizator/za_flafi_uan | Cod sursa (job #1853872) | Cod sursa (job #1911836) | Cod sursa (job #1008224) | Cod sursa (job #838973)
Cod sursa(job #838973)
#include <iostream>
#include <fstream>
#include <cstring>
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;
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)
{
// cout<<"\n SUNT LA STAREA : "<<i<<endl;
// cout<<" Merg la starile : ";
for(int j=0;j<n;++j)
{
if(! (( i >> j) & 1) )
{
int next_config= ( i| 1<<j );
// cout<<next_config<<" ";
if(g>=a[j+1]+dp[i][c])
{
// if(next_config==15)
// cout<<" J :"<<1+j<<" a[j]"<<a[j+1]<<" "<<dp[i][c]<<endl;
dp[next_config][c]=dp[i][c]+a[j+1];
}
else
{
dp[next_config][1+c]=a[j+1];
// if(next_config==15)
// cout<<" J :"<<1+j<<" a[j]"<<a[j+1]<<" "<<dp[i][c]<<endl;
}
}
}
}
}
}
int i;
for(i=1;dp[(1<<n)-1][i]==-1;++i);
gg<<i<<"\n";
}
return 0;
}