比赛 |
20190908之惊鸿 |
评测结果 |
AAAAAAAAAA |
题目名称 |
神奇的幻方 |
最终得分 |
100 |
用户昵称 |
云卷云书 |
运行时间 |
0.006 s |
代码语言 |
C++ |
内存使用 |
13.66 MiB |
提交时间 |
2019-09-18 20:57:32 |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int a[40][40];
int main(){
freopen("2015magic.in","r",stdin);
freopen("2015magic.out","w",stdout);
int n,x[1600],y[1600];
scanf("%d",&n);
for(int i=0;i<=n;i++){
a[0][i]=260408,a[i][0]=260408;
}
a[1][n/2+1]=1;
x[1]=1,y[1]=n/2+1;
for(int i=2;i<=n*n;i++){
if(x[i-1]==1&&y[i-1]!=n){
a[n][y[i-1]+1]=i;
x[i]=n,y[i]=y[i-1]+1;
}
else if(y[i-1]==n&&x[i-1]!=1){
a[x[i-1]-1][1]=i;
x[i]=x[i-1]-1,y[i]=1;
}
else if(a[1][n]==i-1){
a[2][n]=i;
x[i]=2,y[i]=n;
}
else if(x[i-1]!=1&&y[i-1]!=n){
if(a[x[i-1]-1][y[i-1]+1]==0){
a[x[i-1]-1][y[i-1]+1]=i;
x[i]=x[i-1]-1,y[i]=y[i-1]+1;
}
else{
a[x[i-1]+1][y[i-1]]=i;
x[i]=x[i-1]+1,y[i]=y[i-1];
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}