记录编号 310588 评测结果 AAAAAAAAAA
题目名称 [NOIP 2015]神奇的幻方 最终得分 100
用户昵称 GravatarWHZ0325 是否通过 通过
代码语言 C++ 运行时间 0.031 s
提交时间 2016-09-22 19:51:45 内存使用 0.29 MiB
显示代码纯文本
#include <fstream>
using namespace std;
ifstream fin("2015magic.in");
ofstream fout("2015magic.out");
int n;
int array[50][50];
int main() {
	fin>>n;
	for(int i=1;i<=n;i++) {
		for(int j=1;j<=n;j++) {
			array[i][j]=0;
		}
	}
	int last_x=1;
	int last_y=(n+1)/2;
	array[last_x][last_y]=1;
	for(int i=2;i<=n*n;i++) {
		if(last_x==1&&last_y!=n) {
			last_x=n;
			last_y+=1;
		}
		else if(last_y==n&&last_x!=1) {
			last_y=1;
			last_x-=1;
		}
		else if(last_x==1&&last_y==n) {
			last_x+=1;
		}
		else if(last_x!=1&&last_y!=n) {
			if(array[last_x-1][last_y+1]==0) {
				last_x-=1;
				last_y+=1;
			}
			else {
				last_x+=1;
			}
		}
		array[last_x][last_y]=i;
	}
	for(int i=1;i<=n;i++) {
		for(int j=1;j<=n;j++) {
			fout<<array[i][j]<<" ";
		}
		fout<<endl;
	}
	fin.close();
	fout.close();
	return 0;
}