#include #include #include #include using namespace std; char buf[100],mp[9][10]; int rc[9],cc[9],bx[3][3],lg[2000],ct[2000]; bool dfs(int lst) { if(lst==0) return true; int nr=-1,nc=-1,ncnt=10; for(int r=0;r<9;r++) for(int c=0;c<9;c++) { if(mp[r][c]) continue; int can=rc[r]&cc[c]&bx[r/3][c/3]; if(ct[can]0) { for(int r=0;r<9;r++) scanf("%s",mp[r]); memset(rc,0,sizeof(rc)); memset(cc,0,sizeof(cc)); memset(bx,0,sizeof(bx)); for(int i=0;i<9;i++) for(int j=1;j<=9;j++) rc[i]|=1<