Similar problem to 1313 Some Words about Sport , in this problem instead of traversing the table diagonally up we have to print the matrix diagonally downwards.

public class Task1319 {
public void solve(int testNumber, InputReader in, OutputWriter out) {
int n = in.nextInt();
// The resulting matrix.
int[][] table = new int[n][n];
int label = 1;
// Traverse the first element of each column from n-1 to 0 and then
// first element of each row from 1 to n-1.
for (int i = 0; i < 2 * n - 1; i++) {
int col = n-1-i;
int row = 0;
// if col is -ve then we need to go down in the row.
if(col<0) {
row = -col;
col = 0;
}
while(row<n && col<n) {
table[row][col] = label;
label++;
row++;
col++;
}
}
for (int i = 0; i < n; i++) {
out.println(table[i]);
}
}
}