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 以下です。

出力

各テストケースについて、各疑問符を「a」から「z」までの 26 文字のいずれかで置き換え、三つの単語が互いに異なり辞書順になるようにする方法の数を一行に出力してください。個数は $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.