Pagini recente » Cod sursa (job #2386109) | Cod sursa (job #1563888) | Cod sursa (job #820802) | Cod sursa (job #1545810) | Cod sursa (job #542355)
Cod sursa(job #542355)
#include <cstdio>
using namespace std;
FILE *f=fopen("pixels.in", "r");
FILE *g=fopen("pixels.out", "w");
int n;
int a[101][101];
int b[101][101];
int c[101][101][4];
int kx[4]={-1, 0, 1, 0};
int ky[4]={0, 1, 0, -1};
int v[101][101];
int max=-1;
void read()
{
fscanf(f, "%d", &n);
int i=1, j=1;
for (i=1; i<=n; ++i)
for (j=1; j<=n; ++j)
fscanf(f, "%d", &a[i][j]);
for (i=1; i<=n; ++i)
for (j=1; j<=n; ++j)
fscanf(f, "%d", &b[i][j]);
for (i=1; i<=n; ++i)
for (j=1; j<=n; ++j)
for (int k=0; k<4; ++k)
fscanf(f, "%d", &c[i][j][k]);
}
int maxim(int x, int y)
{
if (x>y) return x;
return y;
}
void afis()
{
int sum=0;
for (int i=1; i<=n; ++i)
for (int j=1; j<=n; ++j)
{
if (v[i][j]==1)
sum+=a[i][j];
else sum+=b[i][j];
for (int k=1; k<3; ++k)
{
if (v[i][j]!=v[i+kx[k]][j+ky[k]])
sum-=c[i][j][k];
}
}
max=maxim(max, sum);
}
void program(int i, int j)
{
v[i][j]=1;
if (j<n)
program(i, j+1);
else
{
if (i<n)
program(i+1,1);
else afis();
}
v[i][j]=2;
if (j<n)
program(i, j+1);
else
{
if (i<n)
program(i+1,1);
else afis();
}
}
int main()
{
read();
program(1, 1);
fprintf(g, "%d", max);
fclose(f);
fclose(g);
return 0;
}