QOJ.ac

QOJ

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

#9362. Dobragem

Statistics

Definimos uma operação sobre uma cadeia de caracteres chamada dobragem. Uma dobragem consiste em várias dobras (possivelmente zero). Cada dobra ocorre entre dois caracteres consecutivos e coloca a segunda parte da cadeia (a que fica mais longe do início) sobre a primeira parte (a que fica mais perto do início), seguindo no sentido oposto e alinhada com a posição da dobra. Esta operação transforma a cadeia numa estrutura com mais um nível do que o número de dobras efetuadas.

Depois da dobragem, a cadeia pode ser vista como várias pilhas de caracteres. A dobragem é válida se todos os caracteres de cada pilha forem iguais.

O conjunto correspondente de uma dobragem é o conjunto das posições dos caracteres na cadeia original que ficam imediatamente antes das dobras. Por exemplo, uma dobragem com uma única dobra entre o segundo e o terceiro caracteres tem conjunto correspondente $\{2\}$; uma dobragem sem dobras tem como conjunto correspondente o conjunto vazio. Duas dobragens são consideradas iguais se, e somente se, os seus conjuntos correspondentes forem iguais.

Um conjunto $S$ é aritmético se for possível escolher inteiros $a$ e $b$ ($0\le b<a$) tais que $x\in S\iff 1\le x<n,\ x\equiv b\pmod a$, onde $n$ é o comprimento da cadeia. Por exemplo, para $n=10$, os conjuntos $\varnothing$, $\{2\}$, $\{1,9\}$ e $\{2,4,6,8\}$ são aritméticos, mas $\{1,2,4\}$, $\{1,5\}$ e $\{7,8,9\}$ não são.

Uma dobragem é fantástica se for válida e o seu conjunto correspondente for aritmético. As imagens da página seguinte esclarecem estas definições.

É dada uma cadeia. Conta o número de dobragens fantásticas dessa cadeia.

Entrada

A única linha contém uma cadeia de comprimento $n$ ($1\le n\le 10^6$), constituída por letras latinas, algarismos, sublinhados ou hífenes.

Saída

Imprime um único inteiro — o número de dobragens fantásticas da cadeia dada.

Exemplos

Entrada 1

aaaaa

Saída 1

9

Entrada 2

V-oo-V

Saída 2

2

Entrada 3

gritukan

Saída 3

1

Entrada 4

Lhic

Saída 4

1

Entrada 5

OO0OOO00O0OOOO0O00OOO0OO

Saída 5

6

Entrada 6

SpyCheessee

Saída 6

3

Entrada 7

Aa

Saída 7

1

Entrada 8

228322

Saída 8

4

Entrada 9

______________________________________

Saída 9

380

Nota

No primeiro exemplo, os conjuntos correspondentes das dobragens fantásticas são $\varnothing$, $\{1\}$, $\{2\}$, $\{3\}$, $\{4\}$, $\{1,3\}$, $\{1,4\}$, $\{2,4\}$ e $\{1,2,3,4\}$.

problem_9362_2a4d8855625efbcedffc39f105f3190a.png

Esta é uma dobragem fantástica da cadeia `aabccbaa`. O conjunto correspondente é $\{1,4,7\}$.

problem_9362_3c0be8324500032a165dd2a913900738.png

Esta é uma dobragem fantástica da cadeia `abc`. O conjunto correspondente é $\varnothing$.

problem_9362_dc18d676f99e71fc98c1b93715d34ee3.png

Esta não é uma dobragem válida, mas é uma dobragem e tem um conjunto correspondente aritmético. O conjunto correspondente é $\{2,6,10\}$.

problem_9362_114c4dbd23e7192e22c0fe67d18362c8.png

Isto não é uma dobragem, pois a parte superior segue no mesmo sentido que a inferior.

problem_9362_b713188277d48afc4c309378ffe5772f.png

Isto não é uma dobragem, pois a parte superior segue no mesmo sentido (se a considerarmos dirigida para a direita) ou não está alinhada (se a considerarmos dirigida para a esquerda).

problem_9362_a9af82bb4697f512eeca82e6145a641c.png

Esta é uma dobragem válida, mas o seu conjunto correspondente não é aritmético. O conjunto correspondente é $\{4,6\}$.

E é assim que se usa 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.