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.

Reply via email to