58,448
社区成员




import java.util.*;
public class Test2 {
static Scanner scan=new Scanner(System.in);
static int n;
static int[][] array;
static boolean flag1,flag2;
static int i,j;
public static void move(){
if(flag1){
System.out.print(array[i][++j]+" ");
}
else {
System.out.print(array[++i][j]+" ");
}
flag1=!flag1;
}
public static void move_seria(){
while(flag2){
System.out.print(array[--i][++j]+" ");
if(i==0 || j==n-1){
flag2=!flag2;
return;
}
}
while(!flag2){
System.out.print(array[++i][--j]+" ");
if(i==n-1 || j==0){
flag2=!flag2;
return;
}
}
}
public static void main(String[] args) {
n=scan.nextInt();
array=new int[n][n];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
array[i][j]=scan.nextInt();
if(n==1){
System.out.print(array[n-1][n-1]+" ");
}
else{
i=0;
j=0;
flag1=true;
flag2=false;
System.out.print(array[0][0]+" ");
while(true){
move();
if(i==n-1 && j==n-1)
break;
move_seria();
if(i==0 && j==n-1)
flag1=false;
else if(i==n-1 && j==0)
flag1=true;
}
}
}
}