QOJ.ac

QOJ

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

#10245. Zbieranie klocków [B]

Statistics

Mała Algosia ma prostokątną planszę o wymiarach $n \times m$, podzieloną na $n \cdot m$ kwadratowych pól. Algosia lubi bawić się, układając na planszy sześcienne klocki. Wymiary klocków są takie same jak rozmiary pól, więc Algosia zawsze kładzie klocki tak, aby zajmowały dokładnie jedno pole.

Po zakończonej zabawie Algosia zawsze grzecznie sprząta klocki. Ma małe ręce, więc w jednym ruchu jest w stanie przenieść tylko jeden klocek z planszy do pudełka. Aby mogła chwycić klocek, musi być w stanie złapać go palcami za dwie przeciwległe ściany i te ściany nie mogą być przykryte sąsiadującymi klockami. Innymi słowy, taki klocek albo musi nie mieć sąsiadów po lewej i po prawej, albo musi nie mieć sąsiadów od góry i od dołu.

Algosia zaczęła dzisiejszą zabawę z planszą, na której było ustawionych $k$ klocków. Następnie, z pomocą rodziców, $q$ razy dostawiła lub zdjęła pojedynczy klocek z planszy (dzięki pomocy rodziców możliwe było zdjęcie klocka, nawet jeśli miał on zastawione ściany sąsiadującymi klockami).

Dziewczynka zastanawia się dla każdej z konfiguracji klocków na planszy (czyli na początku zabawy oraz po każdym z $q$ ruchów), ile maksymalnie klocków mogłaby, jeden po drugim, samodzielnie zdjąć z planszy. Algosia rozpatruje to tylko hipotetycznie – nie zdejmuje faktycznie tych klocków. Napisz program, który wyznaczy te liczby dla każdej z konfiguracji.

Wejście

W pierwszym wierszu znajdują się cztery liczby całkowite $n, m, k, q$ ($1 \le n, m \le 200\,000$, $1 \le k, q \le 75\,000$), oznaczające odpowiednio wysokość i szerokość planszy, liczbę klocków ustawionych na planszy na początku zabawy oraz liczbę wykonanych ruchów.

W kolejnych $k$ wierszach znajdują się po dwie liczby całkowite $x_i, y_i$ ($1 \le x_i \le n, 1 \le y_i \le m$), oznaczające współrzędne pola na którym stoi $i$-ty klocek na początku zabawy. Na żadnym polu nie stoi więcej niż jeden klocek.

W kolejnych $q$ wierszach znajdują się po dwie liczby całkowite $x_j, y_j$ ($1 \le x_j \le n, 1 \le y_j \le m$), oznaczające współrzędne pola, na którym został wykonany $j$-ty ruch. Jeśli na tym polu nie było klocka, to ruch polegał na dostawieniu tam klocka. Natomiast jeśli na tym polu stał już klocek, to ruch polegał na zdjęciu go.

Wyjście

Na wyjście należy wypisać $q + 1$ wierszy zawierających po jednej liczbie całkowitej. Liczba w $i$-tym wierszu powinna być równa liczbie klocków, które Algosia może samodzielnie, jeden po drugim, zebrać z planszy, jeśli rozważamy konfigurację klocków po wykonaniu pierwszych $i - 1$ ruchów.

Podzadania

W testach wartych pewną niezerową liczbę punktów zachodzi warunek $q = 1$.

Przykład

Wejście 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

Wyjście 1

22
14
6
5

Uwagi

Rysunek 1: Tak wygląda plansza na początku zabawy. Jest na niej $k = 22$ klocków. Algosia może od razu zdjąć z planszy 14 z nich.

Rysunek 2: Tak wygląda plansza po zdjęciu tych 14 klocków. Wszystkie pozostałe klocki Algosia też może bez problemu zdjąć. Zatem w pierwszej konfiguracji Algosia jest w stanie sprzątnąć wszystkie 22 klocki.

Rysunek 3: W pierwszym ruchu Algosia dostawia klocek zaznaczony na czerwono, tworząc kwadrat $3 \times 3$, którego nie będzie w stanie w żaden sposób zdjąć. Pozostałe klocki (jest ich 14) są możliwe do sprzątnięcia.

Rysunek 4: Tak wygląda plansza po drugim ruchu. Algosia może zdjąć jedynie 6 klocków.

Rysunek 5: Tak wygląda plansza po trzecim ruchu. Odpowiedź to 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.