here is the code.. #define bi (i) #define bj (GRID_SIZE+j) #define bk (int)((GRID_SIZE*2)+(glb_sqrt*(i/glb_sqrt)+(j/glb_sqrt)))
/*glb_sqrt should be the square root of grid_size (i.e. 3 if its a 9x9 sudoku). */ /* #define bk (int)((GRID_SIZE*2)+(5*(i/5)+(j/5))) */ /* * This function will verify solved grid. It will start with each element * in grid and update the bitmap step by step. As soon as it encounters an * element which is already present in bitmap, it will return error. * */ int verify() { int i, j, k; int bitmap[GRID_SIZE*3] = {0}; int bmp_idx; for (i = 0; i < GRID_SIZE; i++) { for (j = 0; j < GRID_SIZE; j++) { if ((((bitmap[bi] >> matrix[i][j]) & 0x1) == 0x0) && (((bitmap[bj] >> matrix[i][j]) & 0x1) == 0x0) && (((bitmap[bk] >> matrix[i][j]) & 0x1) == 0x0)) { bitmap[bi] |= 1 << matrix[i][j]; bitmap[bj] |= 1 << matrix[i][j]; bitmap[bk] |= 1 << matrix[i][j]; } else { printf("Sudoku Error: i = %d, j = %d\n", i, j); return -1; } } } return 0; } On Sat, May 28, 2011 at 11:53 AM, Dumanshu <duman...@gmail.com> wrote: > Given a n by n matrix. Suggest an algorithm to verify its correctness > given a configuration. User can enter numbers only between 1 to n. > I need this in 2 ways - > 1. for the n by n matrix, suggest an elegant way for validating it. > 2. suggest a data structure for this sudoku so that the structure aids > in its verification. > > thnx for the help. > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algogeeks@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.