Universal Cup Judging System

Universal Cup

시간 제한: 2.0 s 메모리 제한: 1024 MB 총점: 100 해킹 가능 ✓
통계

Una cadena $t$ de longitud $k$ formada por letras minúsculas se llama cadena CCPC (Character-Character-Palindrome-Character) si y solo si se cumplen las siguientes condiciones:

  • $k \ge 4$;
  • $t_1 = t_2 = t_k$;
  • $t_3 t_4 \dots t_{k-1}$ es un palíndromo.

Una cadena de longitud $m$ es un palíndromo si y solo si para todo $1 \le i \le m$, el $i$-ésimo carácter de la cadena es igual al $(m - i + 1)$-ésimo carácter de la cadena.

Por ejemplo, ccpc, ppap, zzzz y aabcddcba son cadenas CCPC, mientras que jinan, aaa y oovoo no lo son.

Una subcadena de una cadena $s$ puede representarse mediante un par de enteros $(l, r)$ que satisfacen $1 \le l \le r \le |s|$, correspondiente a la cadena $s_l s_{l+1} \dots s_r$. Dos subcadenas se consideran diferentes si y solo si los pares de índices $(l, r)$ elegidos no son iguales. Dada una cadena $s$ formada por letras minúsculas, primero calcula el número de subcadenas CCPC en $s$. Luego se aplican $n$ operaciones, cada una insertando una letra minúscula en el lado izquierdo o derecho de $s$. Debes determinar el número de subcadenas CCPC en $s$ después de cada inserción.

Entrada

La primera línea contiene un entero $T$ ($1 \le T \le 100$), que indica el número de casos de prueba.

Para cada caso de prueba, la primera línea contiene una cadena $s$ ($4 \le |s| \le 5 \times 10^5$) formada por letras minúsculas, que representa la cadena inicial.

La segunda línea contiene un entero $n$ ($1 \le n \le 5 \times 10^5$), que indica el número de operaciones.

La tercera línea contiene $n$ cadenas de longitud $2$, $c_1, c_2, \dots, c_n$, separadas por espacios, que representan las operaciones en orden cronológico. Para cada cadena $c_i$, el primer carácter es L o R, indicando que la inserción se realiza en el lado izquierdo o derecho de $s$, respectivamente, y el segundo carácter es una letra minúscula que indica el carácter a insertar.

Se garantiza que ni la suma de $|s|$ ni la suma de $n$ en todos los casos de prueba superan $5 \times 10^5$.

Salida

Para cada caso de prueba, imprime una sola línea con $n + 1$ enteros separados por espacios. El primer entero representa la respuesta para la cadena inicial, y el $(i + 1)$-ésimo entero ($1 \le i \le n$) representa la respuesta después de las primeras $i$ operaciones.

Ejemplo

Entrada

2
iloveccpc
6
Rj Ri Ln La Ln Ln
cpcpccp
9
Lc Lc Rp Rc Lc Lc Rp Rp Rc

Salida

1 1 1 1 1 1 2
0 2 3 3 4 5 7 8 8 9

Nota

Para el segundo caso de prueba, después de todas las operaciones, $s$ se convierte en cccccpcpccppcppc. Sus subcadenas CCPC incluyen: $s_{1\dots4} = \text{cccc}$, $s_{1\dots5} = \text{ccccc}$, $s_{2\dots5} = \text{cccc}$, $s_{3\dots10} = \text{cccpcpcc}$, $s_{4\dots7} = \text{ccpc}$, $s_{4\dots9} = \text{ccpcpc}$, $s_{9\dots13} = \text{ccppc}$, $s_{9\dots16} = \text{ccppcppc}$, $s_{11\dots14} = \text{ppcp}$.

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.