아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

i번째 퀸을 지켜라

면접 대비

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

요약
체스판과 이미 놓인 퀸들이 주어질 때, 어떤 퀸과도 행, 열, 대각선을 공유하지 않는 빈 칸의 수를 센다.
난이도

보통10점 중 5점

유형
배열, 해시맵, 수학, 구현
정답자
아직 제출이 없습니다

문제

매년 ACM-ICPC 세계 대회에서는 참가자들이 서로 겨룰 수 있도록 커다란 체스판이 설치됩니다. 이 문제에서는 여러분의 기본적인 체스 감각을 확인합니다.

퀸은 자신이 놓인 행과 열, 그리고 두 대각선 방향으로 공격할 수 있습니다.

체스판에는 이미 i−1i - 1개의 퀸이 놓여 있습니다. ii번째 퀸을 놓았을 때 기존의 어떤 퀸에게도 잡히지 않는 칸이 몇 개인지 세는 것이 목표입니다. 후보 칸은 비어 있어야 하며, 이미 놓인 어떤 퀸과도 같은 행·같은 열·같은 대각선을 공유해서는 안 됩니다.

입력

입력은 여러 개의 작업(task)으로 이루어집니다.

각 작업은 공백으로 구분된 세 정수 XX, YY, NN이 담긴 줄로 시작합니다. XX와 YY는 체스판의 크기이며 1≤X,Y≤20 0001 \le X, Y \le 20\,000입니다. N=i−1N = i - 1은 이미 놓인 퀸의 개수로 0≤N≤X⋅Y0 \le N \le X \cdot Y입니다.

이어지는 NN개의 줄에는 각각 두 정수 xkx_k와 yky_k가 주어지며 (1≤xk≤X1 \le x_k \le X, 1≤yk≤Y1 \le y_k \le Y), kk번째 퀸의 위치를 나타냅니다. 모든 위치는 서로 다릅니다. 즉, 어떤 두 퀸도 같은 칸에 있지 않습니다.

마지막 작업 뒤에는 세 개의 0으로 이루어진 줄이 오며, 이 줄은 처리하지 않습니다.

출력

각 작업마다 한 줄에 정수 하나를 출력합니다. 이미 놓인 어떤 퀸과도 같은 행·열·대각선을 공유하지 않는 빈 칸의 개수입니다.

예제5

  1. 예제 1

    입력
    8 8 2
    4 5
    5 5
    0 0 0
    
    예상 출력
    20
    
  2. 예제 2

    입력
    5 5 0
    0 0 0
    
    예상 출력
    25
    
  3. 예제 3

    입력
    3 3 1
    2 2
    0 0 0
    
    예상 출력
    0
    
  4. 예제 4

    입력
    4 4 1
    1 1
    0 0 0
    
    예상 출력
    6
    
  5. 예제 5

    입력
    8 8 2
    4 5
    5 5
    3 3 1
    2 2
    4 4 1
    1 1
    0 0 0
    
    예상 출력
    20
    0
    6