Really a funny contest. Hope for more.

Here are some hints.

#### Problem A

RSA

#### Problem B

Case #1

```
c..r..h
.h..z..
..a..e.
```

#### Problem C

msg[i] = (26 + cipher[i]-cipher[i-1] ) mod 26 + 'a'

#### Problem D

The first character is Z/O we guess it means zero or one.

Z,1,2,3,2,1,2,1,1,4,2,4,1,1,3,2,1,2,4,1,1,2,2,2,1,1,1,1,2,1,1,3 Means start with zero, we have 1 zero then 2 ones, 3 zeros, 2 ones, 1 zero …

The last step is the same to Problem I.

#### Problem E

Morse code.

#### Problem F

2715 seems like base 27 and base 15.

26 letters in base 27 and 15 letters in base 15. Maybe the 26 letters are 1-26 instead of 0-25.

#### Problem G

brute force + search + good luck. Some online anagram websites will be helpful.

ps: The answer may not be unique?

For example, "yvuoedloreoic" could both be "I love your code" or "I love you coder". But the system test only accept "I love you coder".

#### Problem H

26 integers in first line. Maybe it means the repeat times of each letter in the input?

The following lines is easy to understand, the positions of each letter.

#### Problem I

The cipher is the binary representation of the ASCII characters.

#### Problem J

All letters occur in the samples. Just use the samples to build a map.

#### Problem K

For most samples, cipher[i] ≈ cipher[i-1]*31.

After checking cipher[i]-cipher[i-1]*31, you will find such a formula

cipher[i] = (cipher[i-1]*31 + message[i]) % mod

#### Problem L

Why should the input longer than 7? Oh, key! The input is encrypted by simple XOR with a fixed key.

out[i] = Input[i] xor key[i mod 7]

#### Problem M

The title "oplus" gives a hint to try XOR operation.

cipher[i] xor msg[i] = 222

#### Problem N

It's guaranteed that the original string is made of lower case English letters.

The samples gives almost half the mappings of a-z.

(eight numbers in a row. dots means unknown ones)

```
0 . 8 . 16 17 . 25
4 . . . 20 . 28 .
. 3 10 11 18 . . .
6 7
```

It is obvious that table[i][j]-table[k][j] is always the same for a chosen (i, k). So we can fill the remain positions by hand.

```
0 1 8 9 16 17 24 25
4 5 12 13 20 21 28 29
2 3 10 11 18 19 26 27
6 7
```

#### Problem O

The equal marks gives a hint that it's coded in Base64.

#### Problem P

The title prooooooooooooofer is a very useful hint.

It means Prüfer sequence.

For an undirect tree with n nodes, Prüfer sequence uses n-2 numbers to encode it.

Then recover the given Prüfer sequence to an undirect tree.

Use BFS and DFS sequence of the tree to permute the cipher text.

msg[i] = cipher[DFS[BFS[i]]]

#### Problem Q

Each letter is rotated left by one postion.

#### Problem R

Similar to problem Q.