제자리 평균
시간 제한1초메모리 제한64 MB
주어진 N에 대해 각 행과 열의 평균이 그 행과 열 안에 들어오는 고정된 N x N 표를 출력하고, N=2이면 -1을 출력한다.
문제
슬라브코는 심심해서 크기의 표를 양의 정수로 채운다. 다음 세 조건을 모두 만족하는 표를 만들면 슬라브코는 만족한다.
- 각 행에 적힌 수의 평균이 정수이고, 그 값이 같은 행에 있다.
- 각 열에 적힌 수의 평균이 정수이고, 그 값이 같은 열에 있다.
- 표에 적힌 개의 수가 모두 다르다.
슬라브코가 만족할 표를 찾아라.
입력
첫째 줄에 정수 이 주어진다. ()
출력
조건을 만족하는 표는 여러 개이므로 이 문제는 답을 하나로 정한다. 아래에서 정의한 표를 그대로 출력한다. 표에 적히는 수는 모두 보다 크고 보다 작다.
- 이면 첫째 줄에 을 출력한다. 일 때는 조건을 만족하는 표가 없다.
- 이 홀수이면 부터 까지를 행 방향으로 차례대로 적은 표를 출력한다. 즉 행 열의 값은 이다.
- 이 짝수이고 이면 수열 을 인 에 대해 , 그리고 로 정의한다. 행 열의 값은 이다.
표는 개의 줄에 걸쳐 출력하고, 한 줄에 개의 정수를 공백 하나로 구분해 적는다.
힌트
이 홀수인 표에서 행의 평균은 이고, 이 값은 행의 가운데 칸에 적혀 있다. 열의 평균은 이고, 이 값은 열의 가운데 칸에 적혀 있다. 예를 들어 이면 각 행의 평균은 차례대로 , , 이고 각 열의 평균은 차례대로 , , 이다.
이 짝수이고 이면 의 평균이 이고 이다. 그래서 행의 평균은 그 행에, 열의 평균은 그 열에 들어간다. 이 의 최댓값과 최솟값의 차보다 크므로 개의 값은 서로 다르다.
이면 두 수의 평균이 두 수 중 하나와 같으려면 두 수가 서로 같아야 한다. 조건에서 모든 수가 달라야 하므로 표를 만들 수 없다.