QOJ.ac

QOJ

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

#9362. Pelipatan

Statistics

Mari kita definisikan suatu operasi pada string yang kita sebut pelipatan. Pelipatan terdiri dari beberapa tekukan (mungkin nol). Setiap tekukan terjadi di antara dua huruf yang berurutan dan menempatkan bagian kedua string (bagian yang lebih jauh dari awal string) di atas bagian pertama (bagian yang lebih dekat ke awal string), dengan arah berlawanan dan sejajar dengan posisi tekukan. Dengan operasi ini, string diubah menjadi suatu struktur yang jumlah tingkatnya satu lebih banyak daripada jumlah operasi tekukan yang dilakukan.

Setelah pelipatan, string dapat dipandang sebagai beberapa tumpukan huruf. Kita menyebut pelipatan valid jika semua huruf dalam tumpukan yang sama adalah sama.

Himpunan terkait dari suatu pelipatan adalah himpunan posisi huruf dalam string asli yang tepat berada sebelum posisi tekukan. Sebagai contoh, himpunan terkait dari pelipatan yang terdiri dari satu tekukan di antara huruf ke-2 dan ke-3 adalah $\{2\}$, sedangkan himpunan terkait dari pelipatan tanpa tekukan adalah himpunan kosong. Dua pelipatan dianggap sama jika dan hanya jika himpunan terkaitnya sama.

Suatu himpunan $S$ bersifat aritmetis jika dapat dipilih bilangan bulat $a$ dan $b$ ($0 \le b<a$) sehingga $x\in S\iff 1\le x<n,\ x=b\pmod a$, dengan $n$ adalah panjang string. Sebagai contoh, jika $n$ sama dengan $10$, maka himpunan $\varnothing$, $\{2\}$, $\{1,9\}$, $\{2,4,6,8\}$ dianggap aritmetis, sedangkan himpunan $\{1,2,4\}$, $\{1,5\}$, $\{7,8,9\}$ tidak.

Suatu pelipatan disebut keren jika pelipatan tersebut valid dan himpunan terkaitnya aritmetis. Lihat gambar-gambar pada halaman berikutnya agar lebih jelas.

Diberikan sebuah string. Hitung banyaknya pelipatan keren dari string tersebut.

Masukan

Satu-satunya baris berisi sebuah string yang terdiri dari huruf Latin, digit, garis bawah, atau tanda hubung, dengan panjang $n$ ($1 \le n \le 10^6$).

Keluaran

Cetak satu bilangan bulat — banyaknya pelipatan keren dari string yang diberikan.

Contoh

Masukan 1

aaaaa

Keluaran 1

9

Masukan 2

V-oo-V

Keluaran 2

2

Masukan 3

gritukan

Keluaran 3

1

Masukan 4

Lhic

Keluaran 4

1

Masukan 5

OO0OOO00O0OOOO0O00OOO0OO

Keluaran 5

6

Masukan 6

SpyCheessee

Keluaran 6

3

Masukan 7

Aa

Keluaran 7

1

Masukan 8

228322

Keluaran 8

4

Masukan 9

______________________________________

Keluaran 9

380

Catatan

Pada contoh pertama, himpunan terkait dari pelipatan-pelipatan keren adalah $\varnothing$, $\{1\}$, $\{2\}$, $\{3\}$, $\{4\}$, $\{1,3\}$, $\{1,4\}$, $\{2,4\}$, $\{1,2,3,4\}$.

problem_9362_878299f4777374634153efe038ccfbca.png

Ini adalah pelipatan keren dari string "aabccbaa". Himpunan terkaitnya adalah $\{1,4,7\}$.

problem_9362_f5a015855dd8ac65aa96b93941d27025.png

Ini adalah pelipatan keren dari string "abc". Himpunan terkaitnya adalah $\varnothing$.

problem_9362_86a5a093d2f865564b2bd13871970d68.png

Ini bukan pelipatan yang valid, tetapi ini merupakan pelipatan dan himpunan terkaitnya aritmetis. Himpunan terkaitnya adalah $\{2,6,10\}$.

problem_9362_c6c27325785fbf8383c83b821050d4cb.png

Ini bukan pelipatan, karena bagian atas bergerak ke arah yang sama dengan bagian bawah.

problem_9362_1d4116412a155346a09ae9041f5452fd.png

Ini bukan pelipatan, karena bagian atas bergerak ke arah yang sama (jika kita menganggapnya bergerak ke kanan) atau tidak sejajar (jika kita menganggapnya bergerak ke kiri).

problem_9362_b787226d811d1ba5191af56d8f48f499.png

Ini adalah pelipatan yang valid, tetapi himpunan terkaitnya tidak aritmetis. Himpunan terkaitnya adalah $\{4,6\}$.

Dan begitulah cara Anda menggunakan 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.