Imagination

【Description】

 

 There are four matrixs blow , Can you image the NEXT matrix from thegiven information?

 【Input】

 

  Thefirst line is a integer which represents the case number .

  Foreach test case , there will be a line which contains a integer N(1<=N<=100).

 

【Output】

 

  Output the matrix which has N*N integers. Be careful that there is ablank space between two integer but no blank space after the last integer in aline.

 

【Sample Input】

 

4

1

2

3

4

 

 

 

【Sample Output】

 

1

1 2

4 3

1 2 3

8 7 4

9 6 5

1 2 3 4

12 11 10 5

13 14 9 6

16 15 8 7

#include
#include
using namespace std;

#define MAX(a,b) ((a)>(b) ? (a):(b))
#define MIN(a,b) ((a)<(b) ? (a):(b))

int a[102][102];

void Dealr(int x,int y,int m,int n)
{
	int i;
	for(i=y;m!=n+1;i++) a[x][i]=m++;
}

void Deald(int x,int y,int m,int n)
{
	int i;
	for(i=x;m!=n+1;i++) a[i][y]=m++;
}

void Dealu(int x,int y,int m,int n)
{
	int i;
	for(i=x;m!=n+1;i--) a[i][y]=m++;
}

void Deall(int x,int y,int m,int n)
{
	int i;
	for(i=y;m!=n+1;i--) a[x][i]=m++;
}

int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n,i,j,t1,t2;
		scanf("%d",&n);
		t1=1; t2=n;
		Dealr(1,1,t1,t2);
		t1+=n-1; t2+=n-1;
		Deald(1,n,t1,t2);
		t1+=n; t2+=n-1;
		for(i=2;i


你可能感兴趣的:(Imagination)