QOJ.ac

QOJ

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

#9362. Складання

Statistics

Визначимо операцію над рядком, яку називатимемо складанням. Вона складається з кількох (можливо, нуля) згинів. Кожен згин відбувається між двома сусідніми літерами та розміщує другу частину рядка (ту, що далі від його початку) над першою частиною (тією, що ближче до початку), у протилежному напрямку та з вирівнюванням у місці згину. Унаслідок цієї операції рядок перетворюється на структуру, кількість рівнів якої на один більша за кількість виконаних згинів.

Після складання рядок можна розглядати як кілька стосів літер. Називатимемо складання правильним, якщо всі літери в кожному стосі однакові.

Відповідна множина складання — це множина позицій літер у початковому рядку, що стоять безпосередньо перед місцями згинів. Наприклад, відповідною множиною складання з єдиним згином між другою та третьою літерами є $\{2\}$, а відповідною множиною складання без згинів є порожня множина. Два складання вважаються однаковими тоді й лише тоді, коли їхні відповідні множини однакові.

Множина $S$ є арифметичною, якщо можна вибрати цілі числа $a$ та $b$ ($0\le b<a$) так, щоб $x\in S\iff 1\le x<n,\ x\equiv b\pmod a$, де $n$ — довжина рядка. Наприклад, якщо $n=10$, то множини $\varnothing$, $\{2\}$, $\{1,9\}$, $\{2,4,6,8\}$ вважаються арифметичними, а множини $\{1,2,4\}$, $\{1,5\}$, $\{7,8,9\}$ — ні.

Складання є чудовим, якщо воно правильне, а його відповідна множина арифметична. Для наочності дивіться зображення на наступній сторінці.

Вам дано рядок. Порахуйте кількість чудових складань цього рядка.

Вхідні дані

Єдиний рядок містить рядок довжини $n$ ($1\le n\le10^6$), що складається з латинських літер, цифр, символів підкреслення або дефісів.

Вихідні дані

Виведіть одне ціле число — кількість чудових складань заданого рядка.

Приклади

Вхідні дані 1

aaaaa

Вихідні дані 1

9

Вхідні дані 2

V-oo-V

Вихідні дані 2

2

Вхідні дані 3

gritukan

Вихідні дані 3

1

Вхідні дані 4

Lhic

Вихідні дані 4

1

Вхідні дані 5

OO0OOO00O0OOOO0O00OOO0OO

Вихідні дані 5

6

Вхідні дані 6

SpyCheessee

Вихідні дані 6

3

Вхідні дані 7

Aa

Вихідні дані 7

1

Вхідні дані 8

228322

Вихідні дані 8

4

Вхідні дані 9

______________________________________

Вихідні дані 9

380

Примітка

У першому прикладі відповідними множинами чудових складань є $\varnothing$, $\{1\}$, $\{2\}$, $\{3\}$, $\{4\}$, $\{1,3\}$, $\{1,4\}$, $\{2,4\}$, $\{1,2,3,4\}$.

problem_9362_bd39c95beeecc8d93c0a1bd69deaaf2a.png

Це чудове складання рядка «aabccbaa». Відповідна множина — $\{1,4,7\}$.

problem_9362_c5cf78e808bb18c95de260743e4840aa.png

Це чудове складання рядка «abc». Відповідна множина — $\varnothing$.

problem_9362_d249b65326b95f8d59bb2a1096dcb86b.png

Це неправильне складання, але це складання, і його відповідна множина арифметична. Відповідна множина — $\{2,6,10\}$.

problem_9362_5e1737a4f5afb4d1b0646d5673f58855.png

Це не складання, оскільки верхня частина спрямована так само, як і нижня.

problem_9362_68c51994b2616e3ef9ee21631bfda421.png

Це не складання, оскільки верхня частина або спрямована так само (якщо вважати, що вона спрямована праворуч), або не вирівняна (якщо вважати, що вона спрямована ліворуч).

problem_9362_e5d4bd44202a53eaf2400ac61354e4e0.png

Це правильне складання, але його відповідна множина не арифметична. Відповідна множина — $\{4,6\}$.

Ось так і працюють із TeX.

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.