// Program 20: Merge Both Diagonals in Ascending Order import java.util.*; class DiagonalMerge { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if (n < 1 || n > 20) { System.out.println("Invalid order"); return; } int[][] a = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i][j] = sc.nextInt(); } } int size = n * 2; if (n % 2 == 1) { size--; } int[] merged = new int[size]; int pos = 0; for (int i = 0; i < n; i++) { merged[pos++] = a[i][i]; if (i != n - 1 - i) { merged[pos++] = a[i][n - 1 - i]; } } for (int i = 1; i < size; i++) { int key = merged[i]; int j = i - 1; while (j >= 0 && merged[j] > key) { merged[j + 1] = merged[j]; j--; } merged[j + 1] = key; } for (int x : merged) { System.out.print(x + " "); } } }