QOJ.ac

QOJ

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

#3073. Dictionnaire

Statistics

Selon une croyance populaire, les programmeurs boivent beaucoup de café et ne connaissent que quelques mots. Le vocabulaire d’un programmeur typique ne comporte que trois mots. De plus, il sait rarement comment les écrire. Pour aider les programmeurs à corriger leurs fautes d’orthographe, nous avons publié un livre intitulé « Le dictionnaire des trois mots que tout programmeur typique devrait connaître ».

Vous avez obtenu un exemplaire de ce livre, mais peu après, vous avez renversé votre café dessus. Vous ne pouvez désormais plus lire certains caractères. Heureusement, les trois mots étaient, comme c’est l’usage dans les dictionnaires, distincts et imprimés dans l’ordre lexicographique.

Avant d’essayer d’utiliser ce fait pour retrouver les caractères manquants, vous voulez savoir de combien de façons différentes vous pouvez le faire. Comme vous vous attendez à ce que ce nombre puisse être grand, vous voulez le connaître modulo $10^9 + 9$.

Entrée

La première ligne de l’entrée contient le nombre de cas de test $T$. Les descriptions des cas de test suivent :

Chaque cas de test comprend trois lignes, chacune contenant un seul mot non vide, dans l’ordre où ils apparaissent dans le dictionnaire. Les mots sont constitués de lettres minuscules de l’alphabet anglais et de guillemets, ces derniers indiquant les caractères manquants. Chaque mot comporte au plus $1\,000\,000$ caractères.

La taille du fichier d’entrée ne dépasse pas 16.0 MiB.

Sortie

Pour chaque cas de test, affichez une ligne contenant le nombre de façons différentes de remplacer chaque point d’interrogation par l’une des 26 lettres de « a » à « z », de sorte que les trois mots soient distincts et dans l’ordre lexicographique. Le nombre doit être affiché modulo $10^9 + 9$.

Exemples

Entrée 1

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

Sortie 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.