Pagini recente » Cod sursa (job #2145140) | Cod sursa (job #2590891) | Cod sursa (job #2386339) | Cod sursa (job #1130095) | Cod sursa (job #542551)
Cod sursa(job #542551)
#include <stdio.h>
int v[17],sol,n,a[5][5],b[5][5],c[4][5][5];
void back(int x)
{
if (x==17)
{
int s=0,i,j;
for (i=1;i<=4;++i)
for (j=1;j<=4;++j)
{
if (v[(i-1)*n+j]==0) s+=a[i][j];
else s+=b[i][j];
if (v[(i-1)*n+j]+v[(i-1)*n+j+1]==1) s-=c[1][i][j];
if (v[(i-1)*n+j]+v[i*n+j]==1) s-=c[2][i][j];
}
if (s>sol) sol=s;
return;
}
back(x+1);
v[x]=1;
back(x+1);
v[x]=0;
}
int main()
{
int i,j;
freopen("pixels.in","r",stdin);
freopen("pixels.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i)
for (j=1;j<=n;++j)
scanf("%d",&a[i][j]);
for (i=1;i<=n;++i)
for (j=1;j<=n;++j)
scanf("%d",&b[i][j]);
for (i=1;i<=n;++i)
for (j=1;j<=n;++j)
scanf("%d%d%d%d",&c[0][i][j],&c[1][i][j],&c[2][i][j],&c[3][i][j]);
for (i=1;i<=4;++i)
{
v[4*n+i]=-1;
v[(i-1)*n+5]=-1;
}
back(1);
printf("%d",sol);
return 0;
}