Pagini recente » Cod sursa (job #808831) | Cod sursa (job #2414354) | Cod sursa (job #1293146) | Cod sursa (job #1177612) | Cod sursa (job #542344)
Cod sursa(job #542344)
using namespace std;
#include<iostream>
#include<fstream>
ofstream fout("pixels.out");
#define nmax 105
#define oo 0x3f3f3f3f
int cul[nmax][nmax],c[nmax][nmax][5],a[nmax][nmax],b[nmax][nmax];
int N;
int ans=-oo;
void calculate()
{
int sum=0;
int i,j;
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
{
if(cul[i][j]==1)
{
sum+=a[i][j];
}
else sum+=b[i][j];
if(cul[i][j]!=cul[i-1][j])
{
sum-=c[i][j][0];
}
if(cul[i][j]!=cul[i][j-1])
{
sum-=c[i][j][3];
}
}
}
if(sum>ans)
ans=sum;
/*if(sum==26)
{
fout<<cul[1][1]<<cul[1][2]<<"\n";
fout<<cul[2][1]<<cul[2][2]<<"\n";
cout<<c[1][2][3]<<" "<<c[2][2][0]<<"\n";
}*/
}
void give_val(int k)
{
if(k>N*N)
{
calculate();
}
else
{
for(int i=0;i<=1;i++)
{
cul[(k-1)/N+1][k-((k-1)/N)*N]=i;
give_val(k+1);
}
}
}
void cit()
{
int i,j;
ifstream fin("pixels.in");
fin>>N;
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
{
fin>>a[i][j];
}
}
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
{
fin>>b[i][j];
}
}
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
{
fin>>c[i][j][0];///sus(i-1,j)
fin>>c[i][j][1];///dreapta(i,j+1)
fin>>c[i][j][2];///jos(i+1,j)
fin>>c[i][j][3];///stanga(i,j-1)
}
}
fin.close();
}
int main()
{
cit();
give_val(1);
fout<<ans<<"\n";
fout.close();
return 0;
}