QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 2048 MB 満点: 100

#10538. Actualización de la escalera

統計

El juego de la escalera es popular en Corea, así como en China y Japón. Wikipedia dice: «En coreano se conoce como Sadaritagi (사다리타기, literalmente “subir la escalera”), en japonés como Amidakuji (阿弥陀籤, “lotería de Amida”) y en chino como Guijiaotu (鬼腳圖, literalmente “diagrama de patas de fantasma”)».

El diagrama del juego consta de $n$ líneas verticales con segmentos horizontales que conectan dos líneas verticales adyacentes. Los segmentos horizontales se llaman peldaños. Cada línea vertical tiene un punto inicial (superior) y uno final (inferior). La regla básica es sencilla:

  • Comienza en el punto inicial de cada línea vertical y baja por ella. Al encontrar un peldaño, síguelo hasta la línea vertical adyacente y continúa bajando hasta llegar al final de una línea vertical.

Las líneas verticales están numeradas del $1$ al $n$ de izquierda a derecha. Es bien sabido que el resultado es una permutación de $[1,2,\ldots,n]$. Por ejemplo, con el diagrama siguiente, de 4 líneas verticales y 5 peldaños, el resultado de izquierda a derecha es $[2,3,4,1]$.

problem_10538_50a96be936344f3c8482ba2f61fb4c0d.png

Sin embargo, algunos peldaños son redundantes: el mismo resultado $[2,3,4,1]$ se puede obtener con menos peldaños. Como en la figura siguiente, bastan tres peldaños si se excluyen el superior y el inferior. Queremos determinar el mínimo número de segmentos horizontales (peldaños) necesario para lograr el mismo resultado. Si es necesario, se pueden dibujar peldaños nuevos distintos de los dados.

problem_10538_3b380ea043dc1a6199f0a9dc16ff5b48.png

Se dan $q$ consultas, cada una de las cuales añade un peldaño nuevo o elimina uno existente. Escribe un programa que imprima el mínimo número de peldaños necesario para lograr el mismo resultado que la estructura obtenida después de procesar cada consulta. Las consultas son acumulativas: cada una se aplica a la estructura resultante de las anteriores.

Entrada

Tu programa debe leer de la entrada estándar. La primera línea contiene tres enteros separados por espacios: $n$, el número de líneas verticales; $m$, el número inicial de peldaños; y $q$, el número de consultas, con $2\le n\le100000$, $1\le m\le100000$ y $1\le q\le100000$.

Cada una de las siguientes $m$ líneas contiene dos enteros positivos $h,a$, que representan un peldaño de altura $h$ entre las líneas verticales $a$ y $a+1$ ($1\le a\le n-1$). Las líneas están ordenadas de izquierda a derecha, y la altura se numera de arriba abajo empezando por $1$. La altura no supera $10^9$.

Las siguientes $q$ líneas contienen las consultas. Cada una tiene la forma $\mathrm{A}\ h\ a$ o $\mathrm{D}\ h\ a$, donde $1\le h\le10^9$, $1\le a\le n-1$.

  • $\mathrm{A}\ h\ a$: añade un peldaño de altura $h$ entre las líneas verticales $a$ y $a+1$.

  • $\mathrm{D}\ h\ a$: elimina el peldaño de altura $h$ entre las líneas verticales $a$ y $a+1$.

Puedes suponer que no hay operaciones contradictorias: no se añaden peldaños existentes ni se eliminan peldaños inexistentes. También puedes suponer que ningún par de peldaños comparte un extremo a la misma altura y en la misma línea vertical.

Salida

Tu programa debe escribir en la salida estándar. La salida consta de $q$ líneas, cada una con el mínimo número de peldaños necesario para obtener el mismo resultado para una consulta, en el orden de entrada.

A continuación se muestran entradas y salidas de ejemplo para dos casos de prueba.

Ejemplos

Entrada 1

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

Salida 1

3
6
3

Nota

El primer ejemplo da la estructura inicial siguiente. El resultado es $[3,2,4,1]$.

problem_10538_538e85679f2595c897bce69044b1724a.png

Al aplicar la primera consulta A 7 1 en la figura siguiente, la estructura cambia y el resultado pasa a ser $[2,3,4,1]$.

problem_10538_ec213f4a9286a3c9026d99cf54be37d8.png

De los cinco peldaños, bastan tres, sin el superior ni el inferior, para conseguir el mismo resultado $[2,3,4,1]$, como en la figura siguiente. Por tanto, la respuesta a la primera consulta es $3$.

problem_10538_795c12e1c5a5f1041372686f978bc697.png

Tras procesar la segunda consulta A 4 3, la estructura cambia como muestra la figura siguiente. El número de peldaños no se puede reducir más. La respuesta a la segunda consulta es $6$.

problem_10538_2199486a850abb80d87854ada8bf03b2.png

Al aplicar la tercera consulta D 3 1, la estructura cambia como muestra la figura siguiente.

problem_10538_b5d346110b2e5a1d9fab8a3f8146d330.png

La estructura siguiente, con tres peldaños, garantiza el mismo resultado, así que la respuesta a la tercera consulta es $3$.

problem_10538_86e833ab1345bb8d0d2b2f9f6a2f565a.png

Entrada 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

Salida 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.