QOJ.ac

QOJ

Time Limit: 15 s Memory Limit: 1024 MB Total points: 10

#10245. Сбор кубиков [B]

統計

Маленькая Алгося имеет прямоугольную доску размером $n \times m$, разделенную на $n \cdot m$ квадратных полей. Алгося любит играть, расставляя на доске кубические блоки. Размеры блоков такие же, как размеры полей, поэтому Алгося всегда кладет блоки так, чтобы они занимали ровно одно поле.

После окончания игры Алгося всегда аккуратно убирает блоки. У нее маленькие руки, поэтому за один ход она может перенести только один блок с доски в коробку. Чтобы она могла взять блок, она должна быть в состоянии ухватить его пальцами за две противоположные грани, и эти грани не должны быть закрыты соседними блоками. Иными словами, такой блок либо не должен иметь соседей слева и справа, либо не должен иметь соседей сверху и снизу.

Алгося начала сегодняшнюю игру с доской, на которой было расставлено $k$ блоков. Затем, с помощью родителей, она $q$ раз добавила или убрала один блок с доски (благодаря помощи родителей было возможно убрать блок, даже если его грани были закрыты соседними блоками).

Девочка задается вопросом для каждой из конфигураций блоков на доске (то есть в начале игры и после каждого из $q$ ходов), сколько максимум блоков она могла бы, один за другим, самостоятельно убрать с доски. Алгося рассматривает это только гипотетически — она не убирает эти блоки на самом деле. Напишите программу, которая определит эти числа для каждой из конфигураций.

Входные данные

В первой строке находятся четыре целых числа $n, m, k, q$ ($1 \le n, m \le 200\,000$, $1 \le k, q \le 75\,000$), обозначающие соответственно высоту и ширину доски, количество блоков, расставленных на доске в начале игры, и количество выполненных ходов.

В следующих $k$ строках находятся по два целых числа $x_i, y_i$ ($1 \le x_i \le n, 1 \le y_i \le m$), обозначающие координаты поля, на котором стоит $i$-й блок в начале игры. Ни на одном поле не стоит более одного блока.

В следующих $q$ строках находятся по два целых числа $x_j, y_j$ ($1 \le x_j \le n, 1 \le y_j \le m$), обозначающие координаты поля, на котором был выполнен $j$-й ход. Если на этом поле не было блока, то ход заключался в добавлении туда блока. Если же на этом поле уже стоял блок, то ход заключался в его снятии.

Выходные данные

Выведите $q + 1$ строк, содержащих по одному целому числу. Число в $i$-й строке должно быть равно количеству блоков, которые Алгося может самостоятельно, один за другим, собрать с доски, если мы рассматриваем конфигурацию блоков после выполнения первых $i - 1$ ходов.

Ограничения

В тестах, оцениваемых в некоторое ненулевое количество баллов, выполняется условие $q = 1$.

Примеры

Пример 1

5 7 22 3
1 1
1 2
1 3
2 3
3 3
3 2
2 1
3 1
4 1
5 1
1 5
1 6
1 7
2 5
2 7
3 5
3 6
3 7
4 5
5 5
4 7
5 7
2 2
2 6
5 1
22
14
6
5

Примечание

Рисунок 1: Так выглядит доска в начале игры. На ней $k = 22$ блока. Алгося может сразу убрать с доски 14 из них.

Рисунок 2: Так выглядит доска после снятия этих 14 блоков. Все остальные блоки Алгося тоже может без проблем убрать. Таким образом, в первой конфигурации Алгося в состоянии убрать все 22 блока.

Рисунок 3: В первом ходе Алгося добавляет блок, отмеченный красным, создавая квадрат $3 \times 3$, который она не сможет никаким образом убрать. Остальные блоки (их 14) можно убрать.

Рисунок 4: Так выглядит доска после второго хода. Алгося может убрать только 6 блоков.

Рисунок 5: Так выглядит доска после третьего хода. Ответ — 5.

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.