Cod sursa(job #806954)

Utilizator robertpoeRobert Poenaru robertpoe Data 3 noiembrie 2012 19:39:31
Problema Zebughil Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#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;
}