#include "stdio.h"
#define N 3
static int a[N][N], count;
bool legal(int row, int col)
{
int i;
for(i = 0; i < row; i++)
{
if(a[i][col] == a[row][col])
return false;
}
for(i = 0; i < col; i++)
{
if(a[row][i] == a[row][col])
return false;
}
return true;
}
void trial(int row, int col)
{
int i, j;
if(row == N)
{
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
printf("%5d", a[i][j]);
printf("/n");
}
}
for(i = 1; i <= N; ++i)
{
a[row][col] = i;
if(legal(row, col))
trial((row*N+col+1)/N, (row*N+col+1)%N);
}
}
void main()
{
trial(0, 0);
}