Cod sursa(job #542545)

Utilizator Teodor94Teodor Plop Teodor94 Data 26 februarie 2011 14:44:13
Problema Pixels Scor 0
Compilator cpp Status done
Runda Romanian Master in Mathematics and Sciences 2011, Ziua 2 Marime 1.28 kb
#include<cstdio>

const int N=105;
const int K=5;
const int MIN=-(1<<30);
const int dx[]={-1,0,1,0};
const int dy[]={0,1,0,-1};

int n,a[N][N],b[N][N],c[N][N][K],v[N],mat[N][N],placere=MIN,placur;

void citire()
{
	freopen("pixels.in","r",stdin);
	freopen("pixels.out","w",stdout);
	scanf("%d",&n);
	for (int i=1;i<=n;++i)
		for (int j=1;j<=n;++j)
			scanf("%d",&a[i][j]);
	for (int i=1;i<=n;++i)
		for (int j=1;j<=n;++j)
			scanf("%d",&b[i][j]);
	for (int i=1;i<=n;++i)
		for (int j=1;j<=n;++j)
			for (int k=0;k<4;++k)
				scanf("%d",&c[i][j][k]);
}

void baza2(int x)
{
	int nrv=0;
	for (int i=0;i<=50;++i)
		v[i]=0;
	while (x)
		v[++nrv]=x%2,x/=2;
}

void colt(int x,int y)
{
	int xx,yy;
	if ((x>1 && y>1) && (x<n && y<n))
	{
		for (int i=0;i<4;++i)
		{
			xx=x+dx[i];
			yy=y+dy[i];
			
		}
	}
}

void rez()
{
	int nn=n*n,max=(1<<nn)-1;
	for (int s=0;s<=max;++s)
	{
		baza2(s);
		placur=0;
		for (int i=1;i<=n;++i)
			for (int j=1;j<=n;++j)
				mat[i][j]=v[(i-1)*n+j];
		for (int i=1;i<=n;++i)
			for (int j=1;j<=n;++j)
				if (mat[i][j]==0)
					placur+=a[i][j];
				else
					placur+=b[i][j];
		for (int i=1;i<=n;++i)
			for (int j=1;j<=n;++j)
				colt(i,j);
	}
}

int main()
{
	citire();
	rez();
	printf("0\n");
	return 0;
}