记录编号 513497 评测结果 AAAAAAAAAA
题目名称 [NOIP 2015]神奇的幻方 最终得分 100
用户昵称 Gravatar大我初音ミク 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2018-10-11 19:02:28 内存使用 0.32 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>

using namespace std;

int ax[41][41]; //[行][列]
int n;

void zb(int k,int xq,int yq)
{
	if(k==n*n+1)
		return;
	if(xq==1&&yq!=n)
	{
		ax[n][yq+1]=k;
		zb(k+1,n,yq+1);
	}
	if(yq==n&&xq!=1)
	{
		ax[xq-1][1]=k;
		zb(k+1,xq-1,1);
	}
	if(xq==1&&yq==n)
	{																			
		ax[xq+1][yq]=k;
		zb(k+1,xq+1,yq);
	}
	if(xq!=1&&yq!=n)
	{
		if(ax[xq-1][yq+1]==0)
		{
			ax[xq-1][yq+1]=k;
			zb(k+1,xq-1,yq+1);
		}							
		else
		{
			ax[xq+1][yq]=k;
			zb(k+1,xq+1,yq);
		}
	}
}

int main()
{
	freopen("2015magic.in","r",stdin);
	freopen("2015magic.out","w",stdout);
	
	cin>>n;
	
	ax[1][n/2+1]=1;
	zb(2,1,n/2+1);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
			cout<<ax[i][j]<<" ";
		cout<<endl;
	}
	return 0;
}