매직 스퀘어
시간 제한2초메모리 제한1024 MB
빈 칸에 1부터 N의 제곱까지 남은 숫자를 채워 모든 행과 열, 두 대각선의 합이 같아지는지 판단합니다.
문제
매직 스퀘어는 다음 세 조건을 만족하는 행렬이다.
- 각 칸의 값은 이상 이하의 정수이다.
- 모든 칸의 값이 서로 다르다.
- 개 행의 합, 개 열의 합, 두 대각선의 합이 모두 같다.
다음 행렬은 매직 스퀘어이다.
행의 합은 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로 같다.
일부 칸만 채워진 행렬이 주어진다. 빈 칸을 알맞게 채워 매직 스퀘어를 만들 수 있는지 판정하라.
입력
첫째 줄에 행렬의 크기 ()과 이미 채워진 칸의 개수 ()가 공백을 사이에 두고 주어진다.
다음 개 줄에는 채워진 칸 하나의 행 번호 (), 열 번호 (), 값 ()가 공백을 사이에 두고 주어진다. 는 모두 서로 다르다.
출력
주어진 행렬을 매직 스퀘어로 완성할 수 있으면 yes를, 완성할 수 없으면 no를 한 줄에 출력한다.