QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 512 MB Total points: 100

#3073. Словник

Statistics

За поширеною думкою, програмісти п’ють багато кави й знають лише кілька слів. Словниковий запас типового програміста складається лише з трьох слів. До того ж він рідко знає, як їх правильно писати. Щоб допомогти програмістам з орфографічними помилками, ми видали книжку під назвою «Словник трьох слів, які має знати кожен типовий програміст».

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

Перш ніж спробувати скористатися цим фактом для відновлення втрачених символів, ви хочете дізнатися, скількома різними способами це можна зробити. Оскільки ви очікуєте, що це число може бути великим, ви хочете знати його за модулем $10^9 + 9$.

Вхідні дані

Перший рядок вхідних даних містить кількість тестових випадків $T$. Далі наведено описи тестових випадків:

Кожен тестовий випадок складається з трьох рядків, кожен з яких містить одне непорожнє слово, у порядку їх появи у словнику. Слова складаються з малих літер англійського алфавіту та лапок, причому останні позначають втрачені символи. Довжина кожного слова не перевищує $1\,000\,000$ символів.

Розмір вхідного файлу не перевищує 16.0 MiB.

Вихідні дані

Для кожного тестового випадку виведіть один рядок з кількістю різних способів замінити кожен знак питання однією з 26 літер від «a» до «z» так, щоб три слова були різними й розташованими в лексикографічному порядку. Число слід вивести за модулем $10^9 + 9$.

Приклад

Вхідні дані 1

3
?heoret?cal
c?mputer
?cience
jagiellonian
?niversity
kra?ow
?
b
c

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

42562
52
1

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.