#include #include using namespace std; struct node { int i,j,n; int row[9],column[9],block[9]; int possiblities[10]; int score,h,g; }; void initialize(); void score(); void inpt(); int calculation(); void print(); int isemp(); node a[9][9]; int arr[9][9]; int main() { int i=0; inpt(); initialize(); i=calculation(); print(); cout<>i; return 0; } void inpt() { int i,j; for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { cin>>arr[i][j]; } } } void initialize() { int x,b1,b2,dist; for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { a[i][j].g=a[i][j].h=a[i][j].score=0; for(int k=0;k<9;k++) { a[i][j].row[k]=a[i][j].column[k]=a[i][j].block[k]=0; } for(int k=1;k<10;k++) { a[i][j].possiblities[k]=0; } } } for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { x=arr[i][j]; a[i][j].n=x; if(x!=0) { for(int k=0;k<9;k++) { a[k][j].possiblities[x]=1; a[i][k].possiblities[x]=1; a[i][k].row[j]=1; a[j][k].column[i]=1; } b1=i-i%3; b2=j-j%3; dist=(i%3)*3+(j%3); for(int l=b1;l