用0表示未知数
#include<bits/stdc++.h>
using namespace std;
int aa[15][15];
int vis[15][15];
bool fls=0;
int check(int n,int i)
{
int fls1=0;
int fls2=0;
int hang=n/9;
int lie=n%9;
for(int a=hang/3*3;a<hang/3*3+3;a++)
{
for(int b=lie/3*3;b<lie/3*3+3;b++)
{
if(aa[a][b]==i)return 0;
}
}
for(int a=0; a<9; a++)
{
if(aa[hang][a]==i)
{
return 0;
}
}
for(int a=0; a<9; a++)
{
if(aa[a][lie]==i)
{
return 0;
}
}
return 1;
}
void dfs(int n)
{
if(n>80)
{
fls=1;
return;
}
if(aa[n/9][n%9]==0)
{
for(int i=1; i<=9; i++)
{
if(check(n,i)==1)
{
aa[n/9][n%9]=i;
dfs(n+1);
if(fls)
return;
aa[n/9][n%9]=0;
}
}
}
else
{
dfs(n+1);
}
}
int main()
{
memset(vis,0,sizeof(vis));
for(int a=0; a<9; a++)
{
for(int b=0; b<9; b++)
{
cin>>aa[a][b];
}
}
dfs(0);
for(int a=0; a<9; a++)
{
for(int b=0; b<9; b++)
{
cout<<aa[a][b];
}
cout<<endl;
}
}