QOJ.ac

QOJ

Time Limit: 6 s Memory Limit: 1024 MB Total points: 100

#5474. Polluelos de pingüino increíblemente adorables

Statistics

A los polluelos de pingüino increíblemente adorables les encanta comer gusanos. Un día, su madre encontró un gusano largo con forma de cuerda y con varias letras sobre él. Decidió cortarlo en trozos y alimentar a los polluelos.

problem_5474_c8b09a30be05cdcdd5460cb049489f73.png

Por algún motivo, a los polluelos les encanta International Collegiate Programming Contest y quieren comer trozos con cadenas de estilo ICPC. Aquí, una cadena es de estilo ICPC si cumple las siguientes condiciones:

  • Está formada únicamente por C, I y P.

  • Dos de estos tres caracteres aparecen el mismo número de veces en la cadena (posiblemente cero veces), y el carácter restante aparece estrictamente más veces.

Por ejemplo, ICPC y PPPPPP son de estilo ICPC, pero PIC, PIPCCC y PIPE no lo son.

Se te da la cadena del gusano que encontró la madre. La madre quiere proporcionar uno o más trozos del gusano, todos con una cadena de estilo ICPC, sin desperdiciar restos. Tu tarea es contar el número de maneras de preparar el gusano de esta forma.

Entrada

La entrada consta de una sola línea con una cadena $S$ formada únicamente por C, I y P, que está sobre el gusano con forma de cuerda que encontró la madre pingüino. La longitud de $S$ está entre $1$ y $10^6$, ambos inclusive.

Salida

Imprime en una línea el número de maneras de representar la cadena $S$ como concatenación de una o más cadenas de estilo ICPC, módulo el número primo $998\,244\,353=2^{23}\times7\times17+1$.

Ejemplos

Entrada 1

ICPC

Salida 1

2

Entrada 2

CCCIIIPPP

Salida 2

69

Entrada 3

PICCICCIPPI

Salida 3

24

En el primer ejemplo, la cadena ICPC puede representarse de las siguientes dos maneras:

  • Una única cadena de estilo ICPC, ICPC.

  • La concatenación de cuatro cadenas de estilo ICPC, I, C, P y C.

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.