QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 512 MB Total points: 100 Hackable ✓

#9362. Składanie

Statistics

Zdefiniujmy operację na napisie, którą nazwiemy składaniem. Składanie składa się z kilku (być może zera) zgięć. Każde zgięcie następuje pomiędzy parą kolejnych liter i umieszcza drugą część napisu (dalszą od jego początku) nad pierwszą częścią (bliższą jego początkowi), w przeciwnym kierunku i z wyrównaniem do miejsca zgięcia. Operacja ta przekształca napis w strukturę mającą o jeden poziom więcej niż liczba wykonanych zgięć.

Po złożeniu napis można postrzegać jako kilka stosów liter. Składanie nazywamy poprawnym, jeśli wszystkie litery w każdym stosie są jednakowe.

Zbiorem odpowiadającym składaniu jest zbiór pozycji liter w pierwotnym napisie bezpośrednio poprzedzających miejsca zgięć. Na przykład składaniu z jednym zgięciem między drugą a trzecią literą odpowiada zbiór $\{2\}$, a składaniu bez zgięć — zbiór pusty. Dwa składania uznajemy za takie same wtedy i tylko wtedy, gdy ich odpowiadające zbiory są takie same.

Zbiór $S$ jest arytmetyczny, jeśli można wybrać liczby całkowite $a$ i $b$ ($0 \le b < a$), takie że $x \in S \iff 1 \le x < n,\ x \equiv b \pmod a$, gdzie $n$ oznacza długość napisu. Na przykład dla $n=10$ zbiory $\varnothing$, $\{2\}$, $\{1,9\}$, $\{2,4,6,8\}$ są arytmetyczne, natomiast zbiory $\{1,2,4\}$, $\{1,5\}$, $\{7,8,9\}$ nie są.

Składanie jest wspaniałe, jeśli jest poprawne, a odpowiadający mu zbiór jest arytmetyczny. Ilustracje na następnej stronie ułatwiają zrozumienie.

Dany jest napis. Policz liczbę jego wspaniałych składań.

Wejście

Jedyny wiersz zawiera napis długości $n$ ($1 \le n \le 10^6$), złożony z liter alfabetu łacińskiego, cyfr, znaków podkreślenia lub łączników.

Wyjście

Wypisz jedną liczbę całkowitą — liczbę wspaniałych składań danego napisu.

Przykład

Wejście 1

aaaaa

Wyjście 1

9

Wejście 2

V-oo-V

Wyjście 2

2

Wejście 3

gritukan

Wyjście 3

1

Wejście 4

Lhic

Wyjście 4

1

Wejście 5

OO0OOO00O0OOOO0O00OOO0OO

Wyjście 5

6

Wejście 6

SpyCheessee

Wyjście 6

3

Wejście 7

Aa

Wyjście 7

1

Wejście 8

228322

Wyjście 8

4

Wejście 9

______________________________________

Wyjście 9

380

Uwagi

W pierwszym przykładzie zbiorami odpowiadającymi wspaniałym składaniom są: $\varnothing$, $\{1\}$, $\{2\}$, $\{3\}$, $\{4\}$, $\{1,3\}$, $\{1,4\}$, $\{2,4\}$, $\{1,2,3,4\}$.

problem_9362_2a4d8855625efbcedffc39f105f3190a.png

To jest wspaniałe składanie napisu `aabccbaa`. Odpowiadający zbiór to $\{1,4,7\}$.

problem_9362_3c0be8324500032a165dd2a913900738.png

To jest wspaniałe składanie napisu `abc`. Odpowiadający zbiór to $\varnothing$.

problem_9362_dc18d676f99e71fc98c1b93715d34ee3.png

To nie jest poprawne składanie, ale jest to składanie i jego odpowiadający zbiór jest arytmetyczny. Odpowiadający zbiór to $\{2,6,10\}$.

problem_9362_114c4dbd23e7192e22c0fe67d18362c8.png

To nie jest składanie, ponieważ górna część biegnie w tym samym kierunku co dolna.

problem_9362_b713188277d48afc4c309378ffe5772f.png

To nie jest składanie, ponieważ górna część albo biegnie w tym samym kierunku (jeśli uznamy, że biegnie w prawo), albo nie jest wyrównana (jeśli uznamy, że biegnie w lewo).

problem_9362_a9af82bb4697f512eeca82e6145a641c.png

To jest poprawne składanie, ale odpowiadający mu zbiór nie jest arytmetyczny. Odpowiadający zbiór to $\{4,6\}$.

I tak właśnie składa się tekst w TeX-u.

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.