zigzag

Time limit: 0.03s Memory limit: 2MB Input: zigzag.in Output: zigzag.out

Rail Fence Cipher, cunoscut sub numele de cifru zig-zag, este o metodă de codificare a mesajelor folosind un caroiaj în care textul este scris începând din colţul stânga-sus, diagonal de sus în jos, iar apoi, după ce s-a scris caracterul de pe ultima linie, se continuă, diagonal de jos în sus, ca în exemplu. Numărul de linii ale caroiajului este cheia de codificare. După ce textul a fost scris în acest mod, mesajul codificat se obţine parcurgând liniile de sus în jos şi preluând de pe fiecare linie toate caracterele de la stânga la dreapta.
Dacă vrem să codificăm textul OLIMPIADA DE INFORMATICA, cu cheia de codificare 66, atunci se procedează astfel:

  1. Se scrie textul în zigzag în caroiaj;
  2. Se iau caracterele pe linii şi se formează mesajul codificat: ODTL EAIIA MCMDIRAPANOIF.

Cerinţă

Scrieţi un program care citeşte cheia de codificare şi un text codificat şi determină mesajul decodificat.

Date de intrare

Pe prima linie a fişierului de intrare zigzag.in se află două numere naturale cc şi nn, separate printr-un spaţiu, unde cc reprezintă cheia de codificare, iar nn numărul de caractere al mesajului, şi pe următoarea linie un şir format din nn caractere ce reprezintă mesajul codificat.

Date de ieşire

Fişierul de ieşire zigzag.out va conţine o singură linie, pe care se află mesajul decodificat.

Restricţii şi precizări

  • 1<c<5 0001 \lt c \lt 5 \ 000
  • 1<n<50 0001 \lt n \lt 50 \ 000
  • În mesaj sunt doar caractere cu codul ASCII mai mic ca 127127 şi mai mare ca 3131.

Exemplu

zigzag.in

6 24
ODTL EAIIA MCMDIRAPANOIF

zigzag.out

OLIMPIADA DE INFORMATICA

Log in or sign up to be able to send submissions!