Your math teacher has created an encrypted message using a substitution cipher. The first person to crack the encryption and find the original message gets to leave class early.
She explained her encryption scheme as follows. First she converts every character in the original
message to an integer. The capital letters
Z are encoded as the integers to , the lowercase
z are encoded as the integers to , the digit characters
9 are encoded as the integers
to and the space, period, comma and question mark are and respectively.
Then she uses the formula to substitute each character in the original message for a new one. In this formula, is the character number from the original message, is a secret encryption key and is the number for the character in the encrypted message and the function gives the remainder after dividing the first argument by the second. The formula maps every integer from to to a different integer in the same range with no repeats. A similar formula will also work for decrypting: where is a decryption key .
If then an
a character in the original message would become a
Q character in the
encrypted message, because . For this example the decryption key is .
You just found a scrap of paper on the floor where the teacher encrypted her name. So you now know
B6Hg is the encrypted word
Jane. Can you use this information to decrypt the longer message?
The input will contain test cases. Each test case consists of lines.
The first two lines are a short sample message (unencrypted version, then encrypted version) and the third is the message you have to decrypt using the same method that works for the sample. All three strings will start and end with an asterisk character which is not part of the message. The maximum string length is characters, including asterisks. Your job is to use the sample to decrypt the longer message and then print it out between asterisks.
Note that there are only two test cases below, but the real data sets will contain test cases.
*Jane* *B6Hg* *pIZjugwgZ6HkZx6kZjiZg77GtGgHjUkZ76tjiwZ6ZIgvG9wGvgZI tuZ6IZY,LLYLKln* *135* *29B* *,40Va0aT.H0az8a0Y08Fl0Y0kpuk1g08ll0aq0fdddd*
*Is there any way to efficiently factor a semiprime such as 54775723?* *Is it true that 2 and 2 ALWAYS add to 4????*
Educational Computing Organization of Ontario - statements, test data and other materials can be found at ecoocs.org