#include #include #include int grid[20][20]; int count ,down; void PrintResult(); main() { int loops; int curloop; cin >> loops; for( curloop = 0; curloop> count; if (count % 2 == 0) down = count-1; else down = count; for( j=0; j < down;j++ ) { for( i = 0; i < count; i++ ) { if( i==0 && j==0 ) { grid[i][j] = down; if( down==1 && count!=down ) grid[i][j]++; grid[grid[i][j]-1][j] = i+1; } else if( grid[i][j] == 0 ) { if( i == j ) { grid[i][j] = grid[i-1][j-1]; } else if( i==0 ) { grid[i][j] = grid[i][j-1]+1; if( grid[i][j] > count ) { if( i==0 && down!=count ) grid[i][j] = 2; else grid[i][j] = 1; } } else { grid[i][j] = grid[i-1][j]-1; if( grid[i][j] < 1 ) grid[i][j]+=count; } //if( i == j ) grid[i][j] = grid[i-1][j-1]; if( (grid[i][j]==i+1 && down!=count) || (grid[grid[i][j]-1][j]!=0 && grid[i][j]!=i+1) ) { bool work; grid[i][j]=count+1; do { work = true; grid[i][j]--; if( grid[i][j] < 1) grid[i][j]=count; if( grid[grid[i][j]-1][j]!=0 ) work = false; else { int x; for(x=0;x