QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#894. Segmento suelto más largo

Statistics

Una lista $A$ se denomina loose (suelta) si $\max(A) + \min(A) > \text{len}(A)$.

Hoy, Rikka obtuvo una lista $A$ de longitud $n$. Ella quiere encontrar el segmento más largo $[l, r]$ en $A$ tal que la lista $[A_l, A_{l+1}, \dots, A_r]$ sea loose.

Rikka realizará $m$ turnos con la lista $A$. En cada turno, Rikka realizará una o más operaciones dadas en secuencia. Cada operación consiste en intercambiar dos elementos en la lista $A$. Tu tarea es calcular la longitud del segmento loose más largo de $A$ y la lista resultante después de cada turno.

Ten en cuenta que las operaciones en el turno $i$ se realizan sobre la lista que resultó del turno $(i - 1)$.

Entrada

La primera línea contiene dos enteros $n$ y $m$ ($1 \le n \le 10^6$ y $1 \le m \le 30$).

La segunda línea contiene $n$ enteros $A_i$ ($-10^6 \le A_i \le 10^6$) que constituyen la lista inicial $A$.

Luego siguen $m$ descripciones de los turnos. Para cada turno, la primera línea contiene un único entero $k$ ($1 \le k \le 10^6$), el número de intercambios. Luego siguen $k$ líneas: cada una de ellas contiene dos enteros $u_i$ y $v_i$ ($1 \le u_i, v_i \le n$ y $u_i \neq v_i$) tales que Rikka intercambiará $A_{u_i}$ y $A_{v_i}$ en esta operación.

Se garantiza que $\sum k \le 10^6$.

Salida

En la primera línea, imprime un único entero: la longitud del segmento loose más largo de $A$.

Luego imprime $m$ líneas. En cada una de ellas, imprime un único entero: la longitud del segmento loose más largo de la lista resultante después de cada turno.

Ejemplos

Entrada 1

5 2
1 2 -2 3 4
1
2 3
1
1 2

Salida 1

2
3
4

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.