#include using namespace std; struct loc{ int r, c; }; bool Used[10]; int Grid[9][9]; loc Blanks[5]; void clear(){ for(int i=1;i<10; i++) Used[i]=false; } bool GridOK(){ //check rows for(int r=0;r<9;r++){ clear(); for(int c=0;c<9;c++) if(Used[Grid[r][c]]) return false; else Used[Grid[r][c]]=true; } //check cols for(int c=0;c<9;c++){ clear(); for(int r=0;r<9;r++) if(Used[Grid[r][c]]) return false; else Used[Grid[r][c]]=true; } //check blocks for(int r=0;r<9;r=r+3) for(int c=0;c<9;c=c+3){ clear(); //[r][c] is u.l.h. corner of block for(int i=0;i<3;i++) for(int j=0;j<3;j++) if(Used[Grid[r+i][c+j]]) return false; else Used[Grid[r+i][c+j]]=true; } return true; } void PrintGrid(){ if(!GridOK()) cout<<"Could not complete this grid."<>c; Grid[i][j] = c - '0'; if(c == '0') {Blanks[k].r=i; Blanks[k].c=j; k++;} } } int main(){ int n; cin>>n; for(int i=0;i0) cout<