나이트

시간 제한1초메모리 제한128 MB

요약
M개의 금지된 칸이 있는 N×N 체스판에서 서로 공격하지 않도록 나이트를 최대로 배치하는 개수를 구합니다.
난이도

보통10점 중 6점

유형
그래프, 그리디, 비트 연산, 구현
정답자
아직 제출이 없습니다

문제

체스 말 중 하나인 나이트는 아래 그림에서 S로 표시된 칸에서 X로 표시된 여덟 개의 칸으로 이동할 수 있다. 이동하려는 칸에 다른 말이 있으면 그 말을 잡을 수 있다.

N×N 크기의 체스판이 주어진다. 어떤 두 나이트도 한 번의 이동으로 서로를 잡을 수 없도록 나이트를 놓으려고 한다. 이때 체스판에 놓을 수 있는 나이트의 최대 개수를 구하는 프로그램을 작성하시오. 단, 주어진 M개의 칸에는 나이트를 놓을 수 없다.

입력

첫째 줄에 두 정수 N(1 ≤ N ≤ 200)과 M(0 ≤ M ≤ N²)이 공백으로 구분되어 주어진다. 다음 M개의 줄에는 나이트를 놓을 수 없는 칸의 위치가 한 줄에 하나씩 주어진다. 각 위치는 두 정수로 주어지며, 체스판의 왼쪽 위 칸을 (1, 1), 오른쪽 아래 칸을 (N, N)으로 나타낸다.

출력

첫째 줄에 서로 잡을 수 없도록 놓을 수 있는 나이트의 최대 개수를 출력한다.

예제1

  1. 예제 1

    입력
    3 2
    1 1
    3 3
    
    예상 출력
    5