全wa,样例输出在结尾
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,x,y;
int a[40][40];
struct ds
{
int x;
int y;
};
ds q[2000];
int main()
{
cin>>n;
a[1][(n+1)/2]=1;
q[1].x=1;
q[1].y=(n+1)/2;
for(int i=2;i<=n*n;i++)
{
if(q[i-1].x==1&&q[i-1].y!=n)
{
q[i].x=n;
q[i].y=q[i-1].y+1;
a[q[i].x][q[i].y]=i;
}
if(q[i-1].y==n&&q[i-1].x!=1)
{
q[i].y=1;
q[i].x=q[i-1].x-1;
a[q[i].x][q[i].y]=i;
}
if(q[i-1].y==n&&q[i-1].x==1)
{//bug
q[i].y=q[i-1].y;
q[i].x=q[i-1].x+1;
a[q[i].x][q[i].y]=i;
}
if(q[i-1].x!=1&&q[i-1].y!=n&&a[q[i-1].x-1][q[i-1].y+1]==0)
{//bug
a[q[i-1].x-1][q[i-1].y+1]=i;
}
if(q[i-1].x!=1&&q[i-1].y!=n)
{
a[q[i-1].x+1][q[i-1].y]=i;
}
}
for(int i=1;i<=10;i++)
{
for(int j=1;j<=10;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
/*
0 1 0
3 0 0
4 0 2
*/