记录编号 452868 评测结果 AAAAAAAAAA
题目名称 [NOIP 2015]神奇的幻方 最终得分 100
用户昵称 GravatarFisher. 是否通过 通过
代码语言 C++ 运行时间 0.005 s
提交时间 2017-09-20 15:29:20 内存使用 0.33 MiB
显示代码纯文本
#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <iomanip>
#include <cmath>
using namespace std;
const int maxn=60;
int a[maxn][maxn];
int main()
{
	freopen("2015magic.in","r",stdin);
	freopen("2015magic.out","w",stdout);
	int n;
	cin>>n;
	int p1=n/2+1;
	a[1][p1]=1;
	int h=1;
	int l=p1;
	int i=1;
	begin:for(;i<=n*n;i++)
	{
		i++;
		if(h==1&&l!=n&&l+1>=1&&l+1<=n)
		{
			a[n][l+1]=i;
			h=n;l+=1;
			goto begin;
		}
		if(h!=1&&l==n&&h-1>=1&&h-1<=n)
		{
			a[h-1][1]=i;
			h-=1;l=1;
			goto begin;
		}
		if(h==1&&l==n&&h+1>=1&&h+1<=n)
		{
			a[h+1][l]=i;
			h+=1;
			goto begin;
		}
		if(h!=1&&l!=n)
		{
			if(a[h-1][l+1]==0)
			{
				a[h-1][l+1]=i;
				h-=1;l+=1;
				goto begin;
			}
			else 
			{
				a[h+1][l]=i;
				h+=1;l=l;
				goto begin;
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}