OpenKattis
Skånemästerskapen 2016

Start

2016-01-30 09:30 CET

Skånemästerskapen 2016

End

2016-01-30 14:30 CET
The end is near!
Contest is over.
Not yet started.
Contest is starting in -3248 days 19:02:27

Time elapsed

5:00:00

Time remaining

0:00:00

Problem B
Xorxorxor

\includegraphics[width=\textwidth ]{mans.png}

Måns har kommit på ett briljant chiffer för att skydda sig mot elakingar som försöker läsa hans epost. Hans chiffer fungerar på följande vis. Först använder han teckenkodningen ASCII för att representera varje tecken i sitt mail som ett tal mellan 0-127. Sedan väljer han en nyckel som består av $K$ bytes i intervallet 0-127. Om nyckeln består av bytes $a_0, a_1, a_2, ... a_{k - 1}$, och hans email består av bytes $b_0, b_1, b_2, ...$ så består krypteringen av bytes $k_ i = b_ i \oplus a_{(i \mod K)}$, där $\oplus $ är en bitwise XOR över de 8 bitarna i byten, och $i \mod K$ är den sedvanliga modulo-operationen. Slutligen kodar han varje byte som två tecken i bas 16 (hexadecimalt).

Givet Måns krypterade meddelande, bestäm hur det ursprungliga meddelandet såg ut.

Indata

Indata består av ett antal rader - det krypterade meddelandet. Observera att eventuella radbrytningar endast är med för att indata ska bli enklare att skriva, de ska inte tas hänsyn till i problemet.

Varje ursprungligt meddelande består av minst 500 och högst 1050 tecken.

Utdata

Du ska skriva ut, tecken för tecken, Måns ursprungliga meddelande.

Poäng

  1. $K = 1$, meddelandet består enbart av små bokstäver $a-z$ och mellanslag.

  2. $K = 1$.

  3. $K \le 5$, texten består till 70% av ordet fisk.

  4. $K \le 5$, meddelandet består enbart av små bokstäver $a-z$ och mellanslag.

  5. $K \le 5$

  6. $K \le 10$, meddelandet består enbart av små bokstäver $a-z$ och mellanslag.

  7. $K \le 10$

  8. $K = 15$, ordet "flaggstangsknoppspoleringsmedel" förekommer i texten.

I samtliga fall är det riktig text som krypterats, på antingen engelska, svenska eller tyska. Eventuella diakritiska tecken har tagits bort.

Sample Input 1 Sample Output 1
20000000484935021502530d0f1a184b00000000460f1a180d47532d0f1
a180d0f1a180d0f1a1854462f1a180d48532d0f1a184b00000000486379
2d0f1a1854462f1a180d475d45460f1a180d52530d0f1a184b000000004
849350215025340460f1a180d494e4b00000000486335021502530d0f1a
184b00000000464115021502564b000000004f4915021502530d0f1a184
b000000004849352235225d6100000000460f1a180d49150215025f4b00
000000460f1a180d567961442f1a180d4915021502530d0f1a18494a491
5021502530d0f1a1845462f1a180d49150215024c4b20000000460f1a18
0d49150215025d616c2f1a180d0f1a180d0f1a180d0f1a180d1a1502150
25d6120000000000000000000000000000000150f1a180d47792d0f1a18
0d0f1a180d0f1a180d0f1a1818000000004863350215021502150215021
50215021502000d0f1a18456c2f1a180d0f1a180d0f1a180d0f1a180d1a
150215025d6120000000000000000000000000000000150f1a180d47796
1200000004658494b20000000460f1a180d45530d0f1a184b0000000047
4935021502535122633502150253595c49350215025f4b00000000460f1
a180d4949436c2f1a180d494251462f1a180d475d45462f1a180d491502
15024c4b5c40792d0f1a184b5453532d0f1a184b00000000460f1a180d4
5530d0f1a184b00000000486335021502535a5c4935021502530d0f1a18
47460f1a180d0f1a180d4948426c2f1a180d494151462f1a180d4915021
5025335386335021502535a5c4935021502530d0f1a184b00000000460f
1a180d48526120000000465b494b20000000460f1a180d4915021502535
75563792d0f1a184b00000000460f1a180d45530d0f1a184b0000000048
49350215025e024b0f1a180d4415021502524b20000000460f1a180d475
32d0f1a1847460f1a180d49150215025d61200000004863
Fisk. Fisk fisk fisk fisk. Fiskfiskfisk? Fisk! Fisk fisk.

Fisk? Fisk... fisk; fisk fisk. Fisk + fisk = fisk.
Fisk fisk fisk (fisk% fisk) fisk fisk fisk. FISK.
fisk fisk fisk, fisk fisk?

"Fisk fisk fisk", fisk fisk. Fisk fisk? Fisk fisk fisk.

Fiskfiskfiskfisksfisk.
Fiskfiskfiskfisksfisk.
Fiskfiskfiskfisksfisk.
Fiskfiskfiskfisksfisk.
Fiskfiskfiskfisksfisk.
Fiskfiskfiskfisksfisk.

Fisk 1: Fisk fisk, fisk fisk! Fisk :D
Fisk 2: Fisk, fisk fisk :(
Fisk 1: Fisk... Fisk fisk? :)
Fisk 2: Fisk fisk fisk, fisk fisk.
Fisk 1: Fisk fisk, fiskfisk ;)
Fisk 2: Fisk fisk ^^
Fisk 1: Fisk fisk fisk fisk!!
Fisk 2: Fisk fisk fisk <3

Fisk fisk fisk, fisk fisk. Fisk-i-fisk-fisk! Fisk fisk. Fisk, fisk fisk.
Fisk.