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

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

케이크 자르기

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

요약
케이크를 같은 크기와 같은 개수의 양초를 가진 두 조각으로 계속 반씩 자를 때, 마지막에 남을 수 있는 서로 다른 직사각형 조각의 수를 센다.
난이도

보통10점 중 7점

유형
분할 정복, 재귀, 해시맵
정답자
아직 제출이 없습니다

문제

아르투르의 생일을 맞아 친구들이 직사각형 케이크를 구웠습니다. 케이크에는 아르투르가 맞이하는 나이만큼 KK개의 초가 꽂혀 있습니다. 케이크에는 격자무늬가 그려져 있어 M×NM \times N 크기의 직사각형으로 볼 수 있습니다. 어떤 칸에는 초가 정확히 하나 꽂혀 있고, 다른 칸에는 초가 없습니다.

친구들은 아르투르에게 다음 규칙에 따라 케이크 한 조각을 잘라내는 과제를 냈습니다.

  • 칸의 경계선을 따라가는 하나의 수평 또는 수직 절단으로 케이크를 두 개의 직사각형 조각으로 나눕니다. 이때 두 조각은 크기가 같아야 하고, 초의 개수도 서로 같아야 합니다.
  • 아르투르는 두 조각 중 하나를 옆에 두고, 남은 조각을 같은 규칙에 따라 계속 자릅니다.
  • 더 이상 자를 수 없는 조각이 남았을 때, 그 조각에 초가 정확히 하나 있으면 아르투르가 그 조각을 가집니다. 그렇지 않으면 아르투르는 케이크를 받지 못합니다.

예를 들어 아래 4×84 \times 8 케이크는 수직으로 한 번 잘라, 각각 초가 두 개씩 있는 두 개의 4×44 \times 4 조각으로 나눌 수 있습니다. 첫 절단이 수평이 될 수는 없습니다. 한가운데를 가로로 자르면 위쪽 조각에는 초가 세 개, 아래쪽 조각에는 하나만 남기 때문입니다.

오른쪽 조각은 더 이상 자를 수 없고 초가 두 개 있습니다. 이 조각을 가지면 아르투르는 케이크를 받지 못합니다. 왼쪽 조각은 수평으로도 수직으로도 자를 수 있습니다.

두 방법 모두 잘린 조각마다 초가 하나씩 있으므로, 그중 어느 것이든 아르투르가 가질 수 있습니다.

따라서 이 예에서 아르투르는 서로 다른 네 조각 중 하나를 가질 수 있습니다.

아르투르가 가질 수 있는 서로 다른 조각이 몇 개인지 세어 보세요. 두 조각이 케이크에서 서로 다른 위치를 차지하면 서로 다른 조각으로 봅니다.

입력

첫 줄에 세 정수, 케이크의 높이 MM, 너비 NN, 초의 개수 KK가 주어집니다.

이어지는 KK개의 줄에는 초가 있는 칸의 좌표가 주어집니다. 첫 번째 값은 세로 좌표로 위에서 아래로 00부터 M−1M-1까지이고, 두 번째 값은 가로 좌표로 왼쪽에서 오른쪽으로 00부터 N−1N-1까지입니다.

같은 칸이 두 번 주어지는 경우는 없습니다.

출력

아르투르가 가질 수 있는 서로 다른 조각의 개수를 정수 하나로 출력합니다.

제한

  • 1≤M,N≤1091 \le M, N \le 10^9
  • 1≤K≤1051 \le K \le 10^5
  • 초의 개수는 칸의 개수를 넘지 않습니다. 즉 K≤M⋅NK \le M \cdot N 입니다.

예제4

  1. 예제 1

    입력
    4 8 4
    0 0
    2 2
    0 6
    0 7
    
    예상 출력
    4
    
  2. 예제 2

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

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

    입력
    3 3 2
    0 0
    2 2
    
    예상 출력
    0