매직 스퀘어는 다음 세 조건을 만족하는 N×N 행렬이다.
다음 3×3 행렬은 매직 스퀘어이다.
| 8 | 3 | 4 |
| 1 | 5 | 9 |
| 6 | 7 | 2 |
행의 합은 8+3+4, 1+5+9, 6+7+2이고, 열의 합은 8+1+6, 3+5+7, 4+9+2이며, 두 대각선의 합은 8+5+2, 4+5+6이다. 이 여덟 개의 합이 모두 15로 같다.
일부 칸만 채워진 N×N 행렬이 주어진다. 빈 칸을 알맞게 채워 매직 스퀘어를 만들 수 있는지 판정하라.
첫째 줄에 행렬의 크기 N (2≤N≤5)과 이미 채워진 칸의 개수 E (0≤E≤N2)가 공백을 사이에 두고 주어진다.
다음 E개 줄에는 채워진 칸 하나의 행 번호 R (1≤R≤N), 열 번호 C (1≤C≤N), 값 V (1≤V≤N2)가 공백을 사이에 두고 주어진다. V는 모두 서로 다르다.
주어진 행렬을 매직 스퀘어로 완성할 수 있으면 yes를, 완성할 수 없으면 no를 한 줄에 출력한다.