// Program 67: Sort Non-Boundary Matrix Elements import java.util.*; class SortInnerMatrix { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); if (m <= 3 || m >= 10) { System.out.println("SIZE OUT OF RANGE"); return; } int[][] a = new int[m][m]; for (int i = 0; i < m; i++) { for (int j = 0; j < m; j++) { a[i][j] = sc.nextInt(); } } System.out.println("ORIGINAL MATRIX"); print(a); ArrayList inner = new ArrayList<>(); for (int i = 1; i < m - 1; i++) { for (int j = 1; j < m - 1; j++) { inner.add(a[i][j]); } } Collections.sort(inner); int k = 0; for (int i = 1; i < m - 1; i++) { for (int j = 1; j < m - 1; j++) { a[i][j] = inner.get(k++); } } System.out.println("REARRANGED MATRIX"); print(a); int sum = 0; System.out.println("DIAGONAL ELEMENTS"); for (int i = 0; i < m; i++) { System.out.print(a[i][i] + " "); sum += a[i][i]; if (i != m - 1) { sum += a[i][m - 1 - i]; } } System.out.println("\nSUM OF THE DIAGONAL ELEMENTS = " + sum); } static void print(int[][] a) { for (int[] row : a) { for (int v : row) { System.out.print(v + " "); } System.out.println(); } } }