QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 2048 MB مجموع النقاط: 100

#10538. Aktualizacja drabiny

الإحصائيات

Gra w drabinę jest popularna w Korei, a także w Chinach i Japonii. Wikipedia podaje: „Po koreańsku znana jest jako Sadaritagi (사다리타기, dosłownie «wspinanie się po drabinie»), po japońsku jako Amidakuji (阿弥陀籤, «loteria Amidy»), a po chińsku jako Guijiaotu (鬼腳圖, dosłownie «diagram nóg ducha»).”

Diagram gry składa się z $n$ pionowych linii i poziomych odcinków łączących dwie sąsiednie pionowe linie. Poziome odcinki nazywamy szczeblami. Każda pionowa linia ma punkt początkowy (górny) i końcowy (dolny). Podstawowa zasada gry jest prosta:

  • Zacznij w punkcie początkowym każdej pionowej linii i poruszaj się po niej w dół. Po napotkaniu szczebla przejdź po nim do sąsiedniej linii i kontynuuj w dół aż do punktu końcowego pionowej linii.

Pionowe linie są ponumerowane od $1$ do $n$ od lewej do prawej. Wiadomo, że wynik gry jest permutacją $[1,2,\ldots,n]$. Na przykład dla diagramu poniżej, z 4 pionowymi liniami i 5 szczeblami, wynik od lewej do prawej wynosi $[2,3,4,1]$.

problem_10538_50a96be936344f3c8482ba2f61fb4c0d.png

Niektóre szczeble są jednak zbędne: ten sam wynik $[2,3,4,1]$ można otrzymać przy mniejszej liczbie szczebli. Jak na poniższym rysunku, wystarczą trzy szczeble po pominięciu najwyższego i najniższego. Chcemy ustalić minimalną liczbę poziomych odcinków (szczebli) potrzebną do uzyskania tego samego wyniku. W razie potrzeby można narysować nowe szczeble, inne niż podane.

problem_10538_3b380ea043dc1a6199f0a9dc16ff5b48.png

Danych jest $q$ zapytań, z których każde dodaje nowy szczebel albo usuwa istniejący. Napisz program wypisujący minimalną liczbę szczebli potrzebną do uzyskania tego samego wyniku co struktura drabiny po przetworzeniu zapytania. Zapytania kumulują się: każde kolejne stosuje się do struktury otrzymanej po poprzednich zapytaniach.

Wejście

Program ma czytać ze standardowego wejścia. Pierwszy wiersz zawiera trzy liczby całkowite oddzielone spacją: liczbę pionowych linii $n$, początkową liczbę szczebli $m$ i liczbę zapytań $q$, gdzie $2\le n\le100000$, $1\le m\le100000$, $1\le q\le100000$.

Każdy z kolejnych $m$ wierszy zawiera dwie dodatnie liczby całkowite $h,a$, oznaczające szczebel na wysokości $h$ łączący $a$-tą i $(a+1)$-szą pionową linię ($1\le a\le n-1$). Pionowe linie są uporządkowane od lewej do prawej, a wysokość jest numerowana od góry do dołu od $1$. Wysokość nie przekracza $10^9$.

Kolejnych $q$ wierszy zawiera zapytania. Każde ma postać $\mathrm{A}\ h\ a$ albo $\mathrm{D}\ h\ a$, gdzie $1\le h\le10^9$, $1\le a\le n-1$.

  • $\mathrm{A}\ h\ a$: dodaj szczebel na wysokości $h$ pomiędzy $a$-tą i $(a+1)$-szą pionową linią.

  • $\mathrm{D}\ h\ a$: usuń szczebel na wysokości $h$ pomiędzy $a$-tą i $(a+1)$-szą pionową linią.

Możesz założyć brak sprzecznych operacji: istniejące szczeble nie będą dodawane, a nieistniejące usuwane. Możesz też założyć, że żadne dwa szczeble nie mają wspólnego końca na tej samej wysokości na tej samej pionowej linii.

Wyjście

Program ma pisać na standardowe wyjście. Wyjście składa się z $q$ wierszy; każdy zawiera minimalną liczbę szczebli potrzebną do uzyskania tego samego wyniku dla zapytania, w kolejności wejściowej.

Poniżej przedstawiono przykładowe wejście i wyjście dla dwóch przypadków testowych.

Przykład

Wejście 1

4 4 3
3 1
2 2
5 2
6 3
A 7 1
A 4 3
D 3 1

Wyjście 1

3
6
3

Uwagi

Pierwszy przykład daje poniższą początkową strukturę drabiny. Wynik wynosi $[3,2,4,1]$.

problem_10538_538e85679f2595c897bce69044b1724a.png

Po zastosowaniu pierwszego zapytania A 7 1 na poniższym rysunku struktura zmienia się, a wynik to $[2,3,4,1]$.

problem_10538_ec213f4a9286a3c9026d99cf54be37d8.png

Spośród pięciu szczebli wystarczą trzy, bez najwyższego i najniższego, aby uzyskać ten sam wynik $[2,3,4,1]$, jak na rysunku poniżej. Odpowiedź na pierwsze zapytanie wynosi więc $3$.

problem_10538_795c12e1c5a5f1041372686f978bc697.png

Po przetworzeniu drugiego zapytania A 4 3 struktura zmienia się jak poniżej. Liczby szczebli nie można już zmniejszyć. Odpowiedź na drugie zapytanie wynosi $6$.

problem_10538_2199486a850abb80d87854ada8bf03b2.png

Po zastosowaniu trzeciego zapytania D 3 1 struktura zmienia się jak poniżej.

problem_10538_b5d346110b2e5a1d9fab8a3f8146d330.png

Poniższa struktura z trzema szczeblami zapewnia ten sam wynik, więc odpowiedź na trzecie zapytanie wynosi $3$.

problem_10538_86e833ab1345bb8d0d2b2f9f6a2f565a.png

Wejście 2

4 5 5
3 1
2 2
5 2
6 3
7 1
D 6 3
D 7 1
D 5 2
D 3 1
D 2 2

Wyjście 2

2
3
2
1
0

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.