Canadian Computing Competition: 2012 Stage 1, Junior #4
Sheldon and Leonard are physicists who are fixated on the BIG BANG theory. In order to exchange secret insights, they have devised a code that encodes UPPERCASE words by shifting their letters forward.
Shifting a letter by positions means to go forward letters in the alphabet. For example, shifting B
by positions gives E
. However, sometimes this makes us go past Z
, the last letter of the alphabet. Whenever this happens we wrap around, treating A
as the letter that follows Z
. For example, shifting Z
by positions gives B
.
Sheldon and Leonard's code depends on a parameter and also varies depending on the position of each letter in the word. For the letter at position , they use the shift value of .
For example, here is how ZOOM
is encoded when . The first letter Z
has a shift value of ; it wraps around and becomes the letter F
. The second letter, O
, has and becomes X
. The last two letters become A
and B
. So Sheldon sends Leonard the secret message: FXAB
Write a program for Leonard that will decode messages sent by Sheldon.
Input Specification
The input will be two lines. The first line will contain the positive integer (), which is used to compute the shift value. The second line of input will be the word, which will be a sequence of uppercase characters of length at most .
Output Specification
The output will be the decoded word of uppercase letters.
Sample Input 1
3
FXAB
Output for Sample Input 1
ZOOM
Sample Input 2
5
JTUSUKG
Output for Sample Input 2
BIGBANG
Comments
Taking also works.
Looking for a little help…in the second sample…first letter, s=5*1+5=10. If you move 10 spots to the left of j, you get z. The shift s should be 8. What am I missing? Thanks.
Shift is , where position of 1st letter 'B' is 1. So shift is . Therefore J becomes B after left shift.
Thank you
How do the sample outputs work? When I put 3 and FXAB, and do this formula 3×1+3, how does it go to Z? My program got LGMQ, because when you add the 6 to F (at pos 6) you get to 12 which is L?
The question asks you to decode a message, not encode a message.
Is it just my inexperience, or do you have to use a separate
if else
loop for every separate letter?bruh make the word decode 10 times bigger
My submission produced an AC result. But after I tested it with the following input
It gave the following output:
How come?
It is possible for the ASCII character code after decoding to be less than 39. Simply adding 26 to the result will not always make it into a valid letter—sometimes you will need to add a multiple of 26.