记录编号 |
272439 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2015]神奇的幻方 |
最终得分 |
100 |
用户昵称 |
Hzoi_ |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.007 s |
提交时间 |
2016-06-16 21:27:11 |
内存使用 |
0.02 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[2010]={0};
int n;
int hash(int x,int y){
return x*(n+1)+y;
}
void chuli(int);
int m(){
freopen("2015magic.in","r",stdin);
freopen("2015magic.out","w",stdout);
scanf("%d",&n);
int mid=n/2+1;
a[hash(1,mid)]=1;
for(int i=2;i<=n*n;i++)
{
chuli(i);
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
printf("%d ",a[hash(i,j)]);
if(j==n)printf("\n");
}
}
}
void chuli(int k)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(a[hash(i,j)]==k-1)
{
if(i==1&&j!=n)
{
a[hash(n,j+1)]=k;
return;
}
if(j==n&&i!=1)
{
a[hash(i-1,1)]=k;
return;
}
if(i==1&&j==n)
{
a[hash(i+1,j)]=k;
return;
}
if(a[hash(i-1,j+1)]==0)
{
a[hash(i-1,j+1)]=k;
return;
}
a[hash(i+1,j)]=k;
return;
}
}
}
int z=m();
int main()
{
;
}