#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll hang[100][100],lie[100][100],gong[100][100][100],a[100][100],cnt;
void dfs(int i,int j){
if(i>9){
ll ans=0;
for(int x=1;x<=9;x++){
for(int y=1;y<=9;y++){
if(x==5&&y==5) ans+=a[x][y]*10;
else if(x==4&&y>=4&&y<=6||y==4&&x>=4&&x<=6||y==6&&x>=4&&x<=6||x==6&&y>=4&&y<=6) ans+=a[x][y]*9;
else if(x==3&&y>=3&&y<=7||y==3&&x>=3&&x<=7||y==7&&x>=3&&x<=7||x==7&&y>=3&&y<=7) ans+=a[x][y]*8;
else if(x==2&&y>=2&&y<=8||y==2&&x>=2&&x<=8||y==8&&x>=2&&x<=8||x==8&&y>=2&&y<=7) ans+=a[x][y]*7;
else ans+=a[x][y]*6;
}
}cnt=max(cnt,ans);
return ;
}else if(j>9) dfs(i+1,1);
else if(a[i][j]!=0) dfs(i,j+1);
else{
for(int k=1;k<=9;k++){
int nx=1+(i>3)+(i>6),ny=1+(j>3)+(j>6);
if(hang[i][k]==0&&lie[j][k]==0&&gong[nx][ny][k]==0){
hang[i][k]=lie[j][k]=gong[nx][ny][k]=1;
a[i][j]=k;
dfs(i,j+1);
a[i][j]=hang[i][k]=lie[j][k]=gong[nx][ny][k]=0;
}
}
}
}
int main(){
for(int i=1;i<=9;i++)
for(int j=1;j<=9;j++){
cin>>a[i][j];
int aa=1+(i>3)+(i>6),bb=1+(j>3)+(j>6),k=a[i][j];
hang[i][k]=lie[j][k]=gong[aa][bb][k]=1;
}
dfs(1,1);
cout<<cnt;
return 0;
}
求优化,3个TLE+1个WA