voidrec(int m, int n, int x, int y) { if (m == 0 || n == 0) return; if (n == 1) { for (inti=0; i < m; i++) { ans.add(matrix[x+i][y]); } return; } if (m == 1) { for (inti=0; i < n; i++) { ans.add(matrix[x][y+i]); } return; } for (inti=0; i < n; i++) { ans.add(matrix[x][y+i]); } for (inti=1; i <= m - 2; i++) { ans.add(matrix[x+i][y+n-1]); }
for (inti=0; i < n; i++) { ans.add(matrix[x+m-1][y+n-1-i]); }
for (inti=1; i <= m - 2; i++) { ans.add(matrix[x+m-1-i][y]); } rec(m - 2, n - 2, x + 1, y + 1); }