밸런스 스톤

N x N 격자의 한 칸이 0일 때, 모든 행, 열, 두 대각선의 합이 하나로 같아지게 하는 수 M을 구하고, 없으면 -1을 출력한다.

보통4구현수학행렬면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

우주의 인구를 절반으로 줄이려는 악당 타노진스가 인구 수를 조절하는 보석 밸런스 스톤을 노린다. 이에 맞서는 씨벤저스의 캡틴 학규는 타노진스보다 먼저 밸런스 스톤을 찾아 파괴하려 한다.

밸런스 스톤은 N×NN \times N 블록으로 이루어진 숫자 퍼즐을 완성하면 얻을 수 있다. 퍼즐은 블록 하나가 비어 있는 상태이고, 그 블록에 다음 규칙을 만족하는 수 MM을 채워 넣으면 퍼즐이 완성된다.

  1. MM을 채워 넣었을 때 같은 행에 있는 수의 합이 모든 행에서 같다.
  2. MM을 채워 넣었을 때 같은 열에 있는 수의 합이 모든 열에서 같다.
  3. MM을 채워 넣었을 때 두 대각선에 있는 수의 합이 서로 같다.
  4. 규칙 1, 2, 3에서 나온 합이 전부 같은 값이다.
  5. 어떤 수를 MM에 넣어도 규칙 1, 2, 3을 만족하지 못하면 블록에 -1을 채워 넣어 퍼즐을 마무리한다.

캡틴 학규를 도와 퍼즐을 완성하고 우주의 평화를 지키자.

입력

첫째 줄에 퍼즐의 크기 NN이 주어진다. (2N5002 \le N \le 500)

다음 NN개의 줄에 각 줄마다 블록에 적힌 수가 NN개씩 주어진다. 각 수는 11 이상 10910^9 이하의 자연수이고, 비어 있는 블록은 00으로 주어진다. 비어 있는 블록은 하나이다. 조건을 만족하는 MM이 존재하면 그 MM은 항상 자연수이다.

출력

퍼즐의 조건을 만족하는 수 MM을 출력한다. 그런 수가 없으면 -1을 출력한다.