QOJ.ac

QOJ

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

#5474. Niesamowicie urocze pisklęta pingwinów

Statistics

Niesamowicie urocze pisklęta pingwinów uwielbiają jeść robaki. Pewnego dnia ich matka znalazła długiego robaka w kształcie sznurka, na którym znajdowały się litery. Postanowiła pokroić go na kawałki i nakarmić pisklęta.

problem_5474_c8b09a30be05cdcdd5460cb049489f73.png

Pisklęta z jakiegoś powodu uwielbiają International Collegiate Programming Contest i chcą jeść kawałki z napisami w stylu ICPC. Napis jest w stylu ICPC, jeśli spełnia następujące warunki:

  • Składa się wyłącznie z liter C, I i P.

  • Dwie z tych trzech liter występują w napisie tyle samo razy (być może zero razy), a pozostała litera występuje ściśle więcej razy.

Na przykład ICPC i PPPPPP są w stylu ICPC, ale PIC, PIPCCC i PIPE nie są.

Dany jest napis na robaku znalezionym przez matkę. Matka chce podać co najmniej jeden kawałek robaka, każdy z napisem w stylu ICPC, nie marnując żadnych resztek. Twoim zadaniem jest policzyć sposoby przygotowania robaka w ten sposób.

Wejście

Wejście składa się z jednego wiersza zawierającego napis $S$ złożony wyłącznie z liter C, I i P, znajdujący się na robaku w kształcie sznurka znalezionym przez matkę pingwinów. Długość $S$ wynosi od $1$ do $10^6$ włącznie.

Wyjście

Wypisz w jednym wierszu liczbę sposobów przedstawienia napisu $S$ jako konkatenacji co najmniej jednego napisu w stylu ICPC, modulo liczba pierwsza $998\,244\,353=2^{23}\times7\times17+1$.

Przykład

Wejście 1

ICPC

Wyjście 1

2

Wejście 2

CCCIIIPPP

Wyjście 2

69

Wejście 3

PICCICCIPPI

Wyjście 3

24

W pierwszym przykładzie napis ICPC można przedstawić na dwa sposoby:

  • Jeden napis w stylu ICPC: ICPC.

  • Konkatenacja czterech napisów w stylu ICPC: I, C, P i 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.