Pagini recente » Cod sursa (job #2740886) | Cod sursa (job #3186792) | Cod sursa (job #1180687) | Cod sursa (job #343381) | Cod sursa (job #806954)
Cod sursa(job #806954)
#include<cstdio>
#include<fstream>
#include<cstring>
#define DIMM (1<<19)
using namespace std;
ifstream f("zebunghil.in");
ofstream g("zebunghil.out");
inline int maxim(int x, int y)
{
return x > y ? x : y;
}
int n,c[DIMM][20],G,v[20],max1;
int i, j, k;
int t;
int main()
{
for(t=1;t<=3;t++)
{
f>>n>>G;
for(i=0;i<n;i++)
f>>v[i];
max1=(1<<n)-1;
for(i=0;i<=max1;i++)
for(j=0;j<=n;j++)
c[i][j]=-1;
c[0][0]=0;
for(i=0;i<=max1;i++)
for(j=0;j<n;j++)
if(c[i][j]!=-1)
for(k=0;k<n;k++)
if((i&(1<<k))==0)
{
if(c[i][j]>=v[k])
c[i+(1<<k)][j]=maxim(c[i+(1<<k)][j],c[i][j]-v[k]);
else
c[i+(1<<k)][j+1]=G-v[k];
}
for(i=0;i<=n;i++)
if(c[max1][i]!=-1)
break;
g<<i<<"/n";
}
return 0;
}