// Program 74: Sort Boundary Elements of a Matrix import java.util.*; class SortBoundary { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if (n < 4 || n > 9) { System.out.println("SIZE OUT OF RANGE"); 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(); } } ArrayList b = new ArrayList<>(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == 0 || j == 0 || i == n - 1 || j == n - 1) { b.add(a[i][j]); } } } Collections.sort(b); int k = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == 0 || j == 0 || i == n - 1 || j == n - 1) { a[i][j] = b.get(k++); } } } int left = 0, right = 0; for (int i = 0; i < n; i++) { left += a[i][i]; right += a[i][n - 1 - i]; } for (int[] row : a) { for (int v : row) { System.out.print(v + " "); } System.out.println(); } System.out.println("LEFT DIAGONAL SUM = " + left); System.out.println("RIGHT DIAGONAL SUM = " + right); } }