제자리 평균

주어진 N에 대해 각 행과 열의 평균이 그 행과 열 안에 들어오는 고정된 N x N 표를 출력하고, N=2이면 -1을 출력한다.

쉬움3구현수학배열시뮬레이션아직 제출이 없습니다시간 제한1초메모리 제한64 MB

문제

슬라브코는 심심해서 N×NN \times N 크기의 표를 양의 정수로 채운다. 다음 세 조건을 모두 만족하는 표를 만들면 슬라브코는 만족한다.

  • 각 행에 적힌 수의 평균이 정수이고, 그 값이 같은 행에 있다.
  • 각 열에 적힌 수의 평균이 정수이고, 그 값이 같은 열에 있다.
  • 표에 적힌 N2N^2개의 수가 모두 다르다.

슬라브코가 만족할 표를 찾아라.

입력

첫째 줄에 정수 NN이 주어진다. (1N1001 \le N \le 100)

출력

조건을 만족하는 표는 여러 개이므로 이 문제는 답을 하나로 정한다. 아래에서 정의한 표를 그대로 출력한다. 표에 적히는 수는 모두 00보다 크고 10910^9보다 작다.

  • N=2N = 2이면 첫째 줄에 1-1을 출력한다. N=2N = 2일 때는 조건을 만족하는 표가 없다.
  • NN이 홀수이면 11부터 N2N^2까지를 행 방향으로 차례대로 적은 표를 출력한다. 즉 iijj열의 값은 N(i1)+jN(i-1)+j이다.
  • NN이 짝수이고 N4N \ge 4이면 수열 s1,s2,,sNs_1, s_2, \ldots, s_N1kN11 \le k \le N-1kk에 대해 sk=ks_k = k, 그리고 sN=3N/2s_N = 3N/2로 정의한다. iijj열의 값은 2N(si1)+sj2N(s_i - 1) + s_j이다.

표는 NN개의 줄에 걸쳐 출력하고, 한 줄에 NN개의 정수를 공백 하나로 구분해 적는다.

힌트

NN이 홀수인 표에서 ii행의 평균은 N(i1)+(N+1)/2N(i-1) + (N+1)/2이고, 이 값은 ii행의 가운데 칸에 적혀 있다. jj열의 평균은 N(N1)/2+jN(N-1)/2 + j이고, 이 값은 jj열의 가운데 칸에 적혀 있다. 예를 들어 N=3N = 3이면 각 행의 평균은 차례대로 22, 55, 88이고 각 열의 평균은 차례대로 44, 55, 66이다.

NN이 짝수이고 N4N \ge 4이면 s1,s2,,sNs_1, s_2, \ldots, s_N의 평균이 N/2+1N/2 + 1이고 sN/2+1=N/2+1s_{N/2+1} = N/2 + 1이다. 그래서 행의 평균은 그 행에, 열의 평균은 그 열에 들어간다. 2N2Nss의 최댓값과 최솟값의 차보다 크므로 N2N^2개의 값은 서로 다르다.

N=2N = 2이면 두 수의 평균이 두 수 중 하나와 같으려면 두 수가 서로 같아야 한다. 조건에서 모든 수가 달라야 하므로 표를 만들 수 없다.