/*
#include <stdio.h>
#include <string.h>
int main()
{
char arr[101]={};
int i,s=0,ss=0;
scanf("%s",arr);
for(i=0;arr[i]!=NULL;i++)
{
if(arr[i]=='c'||arr[i]=='C')
{
s++;
if(arr[i+1]=='c'||arr[i+1]=='C') ss++;
}
}
printf("%d\n%d",s,ss);
return 0;
}
#include <stdio.h>
int main()
{
int arr[11][11]={0};
int r,c,i,j,s=0;
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
{
scanf("%d",&arr[i][j]);
}
}
scanf("%d %d",&r,&c);
if(arr[r][c]==1)
{
printf("-1");
}
else
{
int i,j;
for(i=r-1;i<=r+1;i++)
{
for(j=c-1;j<=c+1;j++)
{
s+=arr[i][j];
}
}
printf("%d",s);
}
return 0;
}
플레이어의 위치 (i,j)
i=시작점;
j=시작점;
while(1)
{
arr[i][j] = k++;
i와 j 변경 ex) i++, j++, i--; j=n; ..
if(종료조건) break;
}
*/
/*
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int i=1,j=(n+1)/2,k=1,c=0;
int arr[51][51]={};
while(1)
{
arr[i][j]=k;
i--;
j++;
c++;
if(k%n==0)
{
i+=2;
j--;
}
k++;
if(i==0) i=n;
if(j==n+1) j=1;
if(c>=n*n) break;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}
*/
/**1099 성실한 개미
#include <stdio.h>
int main()
{
int arr[11][11]={};
int a,b,i=2,j=2;
for(a=1;a<=10;a++)
{
for(b=1;b<=10;b++)
{
scanf("%d",&arr[a][b]);
}
}
while(arr[i][j]!=2)
{
arr[i][j]=9;
if (arr[i][j+1]!=1) j++;
else if (arr[i+1][j]!=1) i++;
}
arr[i][j]=9;
for(a=1;a<=10;a++)
{
for(b=1;b<=10;b++)
{
printf("%d ",arr[a][b]);
}
printf("\n");
}
return 0;
}
*/
/**1484 2차원 배열 달팽이 채우기 4-1
#include <stdio.h>
int main()
{
int n,m,i=1,j=1,k=1;
scanf("%d %d",&n,&m);
int arr[102][102]={};
while(1)
{
arr[i][j]=k++;
if(k==n*m+1) break;
if(j<m) j++;
else if(i<n) i++;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
}
*/
#include <stdio.h>
int main()
{
int arr[100][100]={};
int n;
scanf("%d",&n);
int i=n,j=1,s=0,k=1,dir=1;
while(1)
{
arr[i][j]=k++;
if(i==n&&j==n) break;
if(dir==1)
{
i--;
j++;
if(j==n+1)
{
dir=0;
i+=2;
j--;
continue;
}
}
else
{
i++;
j--;
if(i==n+1)
{
dir=1;
i--;
j+=2;
continue;
}
}
}
for(int p=1;p<=n;p++)
{
for(int q=1;q<=n;q++)
{
printf("%d ",arr[p][q]);
}
printf("\n");
}
return 0;
}