QOJ.ac

QOJ

Limite de temps : 9 s Limite de mémoire : 1024 MB Points totaux : 10

#8410. Concatenación de secuencias [A]

Statistiques

Llamamos intervalo de una secuencia numérica $C$ a cualquier subsecuencia no vacía y contigua. En particular, esto significa que cualquier secuencia de longitud $k$ posee $\frac{k(k+1)}{2}$ intervalos, ya que cada intervalo está determinado por su inicio y su fin.

Para una secuencia dada de números enteros, definimos su estabilidad como la longitud del intervalo estrictamente monótono más largo que contiene. Más precisamente, la estabilidad de una secuencia $[c_1, c_2, \dots, c_k]$ es el mayor número entero $s$ tal que existe un índice $i$ ($1 \le i \le k - s + 1$) para el cual $c_i < c_{i+1} < \dots < c_{i+s-1}$ o $c_i > c_{i+1} > \dots > c_{i+s-1}$. Por ejemplo, la estabilidad de la secuencia $[8, 6, 1, 3, 5, 7, 4, 2]$ es 4, ya que contiene el intervalo estrictamente monótono $[1, 3, 5, 7]$ y no existe uno más largo.

Llamamos entrelazado de dos secuencias $A$ y $B$ a cualquier secuencia de longitud $|A| + |B|$ que posea una subsecuencia (no necesariamente contigua) igual a $A$, tal que todos los elementos fuera de esta subsecuencia formen la secuencia $B$. Por ejemplo, los entrelazados de las secuencias $[1, 2, 3]$ y $[4, 5]$ son secuencias como $[1, 4, 2, 5, 3]$, $[4, 5, 1, 2, 3]$ y $[4, 1, 5, 2, 3]$, pero no $[1, 2, 3, 4, 3]$ ni $[1, 2, 3, 5, 4]$.

Finalmente, denotamos por $f(A, B)$, donde $A$ y $B$ son secuencias de números enteros, la estabilidad mínima posible de su entrelazado.

Dados dos secuencias de números enteros $A$ y $B$, de longitudes $n$ y $m$ respectivamente, tu tarea es calcular, para cada número entero $x$ desde 1 hasta $n + m$ inclusive, el número de pares $(A', B')$ tales que $A'$ es un intervalo en $A$, $B'$ es un intervalo en $B$ y se cumple $f(A', B') = x$. Dado que los números descritos pueden ser muy grandes, basta con proporcionar sus restos al dividirlos por $10^9 + 7$.

Puedes asumir que todos los elementos de las secuencias $A$ y $B$ son distintos entre sí.

Entrada

La primera línea de la entrada contiene dos números enteros $n$ y $m$ ($1 \le n, m \le 300\,000$), que representan las longitudes de las secuencias $A$ y $B$ respectivamente.

La segunda línea de la entrada contiene una secuencia de $n$ números enteros $A_1, A_2, \dots, A_n$ ($1 \le A_i \le n + m$), la mencionada secuencia $A$.

La tercera línea de la entrada contiene una secuencia de $m$ números enteros $B_1, B_2, \dots, B_m$ ($1 \le B_i \le n + m$), la mencionada secuencia $B$.

Se garantiza que todos los elementos de las secuencias $A$ y $B$ son distintos entre sí. En otras palabras, la concatenación de las secuencias $A$ y $B$ forma una permutación de los números del 1 al $n + m$.

Salida

En la única línea de la salida estándar debe haber $n + m$ números separados por espacios; el $i$-ésimo de estos números debe ser igual al resto de la división por $10^9 + 7$ del número de pares $(A', B')$ tales que $A'$ es un intervalo en la secuencia $A$, $B'$ es un intervalo en la secuencia $B$ y se cumple $f(A', B') = i$.

Ejemplos

Entrada 1

5 3
1 2 5 7 4
8 3 6

Salida 1

0 84 6 0 0 0 0 0

Nota

Para los intervalos que son las secuencias completas, se cumple $f([1, 2, 5, 7, 4], [8, 3, 6]) = 2$, y un entrelazado suyo con estabilidad igual a 2 es, por ejemplo, la secuencia $[1, 8, 2, 5, 3, 7, 4, 6]$.

Cuando consideramos los intervalos $[1, 2, 5, 7]$ y $[3]$, obtenemos $f([1, 2, 5, 7], [3]) = 3$, y un entrelazado suyo con estabilidad igual a 3 es, por ejemplo, la secuencia $[1, 2, 5, 3, 7]$. Se puede demostrar que el par de secuencias $([1, 2, 5, 7], [3])$ no puede entrelazarse de manera que se obtenga una secuencia con una estabilidad menor que 3.

Para los intervalos $[4]$ y $[6]$, se cumple $f([4], [6]) = 2$, y buenos ejemplos son ambos entrelazados posibles: $[4, 6]$ y $[6, 4]$.

Cada par de intervalos en este ejemplo puede entrelazarse de modo que la estabilidad del entrelazado resultante no sea mayor que 3. Por lo tanto, las respuestas para $x \ge 4$ son iguales a 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.