조약돌
시간 제한1초메모리 제한128 MB
N×N 보드에서 대각선으로도 인접하지 않게 돌을 놓아 덮은 칸 값의 합을 최대로 만든다.
문제
크기의 게임판에 조약돌을 원하는 만큼 놓을 수 있습니다. 여기서 입니다. 각 칸에는 이상 이하의 양의 점수가 하나씩 적혀 있습니다. 예를 들어 게임판은 다음과 같이 생겼을 수 있습니다.
다음 두 규칙을 지키며 조약돌을 놓습니다.
- 한 칸에는 조약돌을 최대 한 개만 놓을 수 있습니다.
- 서로 인접한 두 칸에 동시에 조약돌을 놓을 수 없습니다. 두 칸은 가로, 세로, 또는 대각선으로 맞닿아 있으면 인접한 것으로 봅니다.
게임판은 반대쪽 끝과 이어지지 않으므로, 같은 행이나 열의 양쪽 끝 칸, 그리고 서로 멀리 떨어진 두 모서리 칸은 인접하지 않습니다.
점수는 조약돌이 놓인 모든 칸의 점수를 합한 값입니다. 이 점수를 최대로 만드세요.
입력에는 여러 개의 게임판이 들어올 수 있으며, 각 게임판마다 얻을 수 있는 최대 점수를 구합니다.
입력
각 게임판은 개의 줄로 이루어지며, 한 줄에는 공백으로 구분된 개의 점수(칸마다 하나씩)가 들어 있습니다. 게임판 사이는 빈 줄로 구분됩니다. 입력이 끝날 때까지 게임판을 계속 읽습니다.
출력
각 게임판마다 규칙을 지키며 얻을 수 있는 최대 점수를 정수 하나로 한 줄에 출력합니다.