Fișierul intrare/ieșire | romb.in, romb.out | Sursă | Cerc informatică Vianu |
---|---|---|---|
Autor | Cristian Frâncu | Adăugată de | Cristian Frâncu • francu |
Timp de execuție pe test | 1.2 sec | Limită de memorie | 1230 KB |
Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
Romb (clasa a 6-a)
În lupta continuă a Alianței contra Hoardei de orci comunicarea criptată este o armă de bază. Alianța schimbă metodele de criptare lunar, deoarece goblinii reușesc de fiecare dată să o spargă. Speranța Alianței stă în ultima metodă inventată de lordul Uther, care are la bază amestecarea de litere în plus în mesajul codificat. Mare greșeală! Ei nu știu că Thrall, șeful Hoardei v-a angajat pe voi să spargeți criptarea. După o muncă asiduă și susținută v-ați dat seama care este schema de decodificare: se folosește o tabelă de n x n căsuțe care constituie cheia de decodificare. Apoi se aranjează caracterele textului de decodificat pe diagonale, precum în figură. La final se suprapune cheia (tabela) si se ia numai mesajul din interiorul ei. Figura prezintă decodificarea pentru o cheie de mărime n = 5. Cheia de decodificare are întotdeauna o dimensiune impară.
Cerință
Dat un text codificat să se decodifice.
Date de intrare
Fișierul romb.in conține pe prima linie dimensiunea cheii, n. Pe a doua linie conține mesajul codificat.
Date de ieșire
Fișierul romb.out va conține mesajul decodificat așa cum apare el în tabela cheie, respectiv n linii a cîte n caractere fiecare.
Restricții
- 3 ≤ n ≤ 1001, n impar.
- Mesajul codificat conține numai litere mari, litere mici, cifre si spații.
- Lungimea mesajului codificat este de maxim 2002001 caractere.
Exemplu
romb.in | romb.out |
---|---|
5 ABDCDEEAFXVZCYLIIAEENCVBETUZISEMNNTOPQERS |
DACAV EZICU VINTE LEEST EBINE |