Universal Cup Judging System

Universal Cup

Time Limit: 2.0 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show] Hackable ✓
Statistics

작은 청어(Little Cyan Fish)는 $n$행 $m$열의 직사각형을 가지고 있으며, 행과 열의 인덱스는 모두 $0$부터 시작합니다. $i$행 $j$열의 칸은 $(i, j)$ ($0 \le i \le n - 1, 0 \le j \le m - 1$)로 나타낼 수 있습니다. 처음에는 모든 칸이 존재합니다(삭제되지 않았습니다).

작은 청어는 두 칸 $(x_a, y_a)$와 $(x_b, y_b)$가 $|x_a - x_b| + |y_a - y_b| = 1$을 만족할 때, 그리고 그때에만 두 칸이 인접하다고 부릅니다. 다시 말해, 이 두 칸은 공통 경계를 공유합니다(4-인접이라고도 함). 두 칸 $p = (x_a, y_a)$와 $q = (x_b, y_b)$에 대하여, 인접하고 삭제되지 않은 일련의 칸들을 통해 서로 연결될 수 있다면 칸 $p$와 $q$는 연결되어 있다고(4-연결) 합니다.

problem_18013_1.png

예를 들어, 위 그림의 상황(검은색 칸은 삭제된 칸을 나타내고, 흰색 칸은 삭제되지 않은 칸을 나타냄)을 생각해 봅시다. 칸 A와 칸 B는 인접해 있습니다. 칸 A는 칸 B 및 칸 C와 연결되어 있지만, 칸 A와 칸 D는 연결되어 있지 않습니다.

이제 작은 청어는 꿈속에서 몇 가지 연산을 수행하려고 합니다. 각 연산에서 작은 청어는 한 칸 $(x, y)$를 선택하고 칸 $(x, y)$를 삭제합니다.

작은 청어는 매번 삭제한 후에 현재 직사각형에 남아 있는 삭제되지 않은 칸들 중 몇 개가 단절점(cut vertex)인지 매우 궁금해합니다. 구체적으로는 다음과 같습니다:

  • 어떤 칸 $r = (x_r, y_r)$에 대하여, 두 칸 $p = (x_p, y_p)$와 $q = (x_q, y_q)$가 존재하여 격자에서 $p$와 $q$가 연결되어 있지만, 칸 $r$을 삭제한 후에는 더 이상 연결되지 않는다면, $r$을 단절점이라고 부릅니다.

예를 들어, 위 그림에서 칸 E는 단절점입니다. 칸 A와 칸 C는 칸 E를 삭제하기 전에는 연결되어 있지만, 칸 E를 삭제한 후에는 더 이상 연결되지 않기 때문입니다.

그러나 작은 청어의 꿈은 매우 신비롭기 때문에 이후의 연산을 예측할 수 없습니다. 따라서 이 모든 연산에 온라인으로 답해야 합니다. 구체적으로, $i$번째 ($2 \le i \le q$) 연산에서 주어지는 $(x, y)$는 $i-1$번째 연산이 반환한 결과에 따라 달라집니다. 이 제약 조건 아래에서 작은 청어가 모든 질의에 답할 수 있도록 도와주십시오.

입력

첫 번째 줄에는 세 정수 $n$, $m$, $q$ ($2 \le n, m \le 500$, $1 \le q \le n \cdot m$)가 주어집니다.

다음 $q$개의 줄에는 각각 두 정수 $x'_i, y'_i$ ($0 \le x'_i < n, 0 \le y'_i < m$)가 주어지며, 이는 삭제될 칸의 암호화된 좌표 $(x_i, y_i)$를 나타냅니다. 이전 질의의 정답이 $preans$라면, 실제 좌표는 $x_i = (x'_i + preans) \bmod n$, $y_i = (y'_i + preans) \bmod m$입니다. 처음에는 $preans = 0$으로 간주합니다.

복호화된 $(x_i, y_i)$는 서로 다름이 보장됩니다. 즉, 같은 칸이 여러 번 삭제되지 않습니다.

출력

각 연산마다 해당 삭제 연산 이후의 단절점 개수를 나타내는 정수를 한 줄에 하나씩 출력합니다.

예제

입력 예제 1

5 5 12
0 1
0 1
1 4
2 3
4 1
2 4
1 1
4 2
2 1
4 2
1 0
0 0

출력 예제 1

1
2
2
6
5
7
10
7
6
7
7
4

노트

복호화된 데이터:

5 5 12
0 1
1 2
3 1
4 0
0 2
2 4
3 3
4 2
4 3
0 3
3 2
2 2

다음은 각 칸이 검은색으로 칠해지는 순서입니다.

problem_18013_2.png

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.