Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

WZP09_1D - Szyfr

Kamil D. jest prezenterem wiadomości w jednej z czołowych polskich stacji telewizyjnych. Życie Kamila było niczym bajka, jak każdy prezenter jeździł po Polsce i zbierał prezenty. Pewnego dnia nasz bohater zauważył, że stół przy którym prowadzi program jest u... ubrudzony. Kamil szybko i dosadnie dał do zrozumienia obsłudze studia co sądzi o takim stanie rzeczy. Niestety styl wypowiedzi naszego bohatera chyba nie przypadł do gustu jego współpracownikom bo już następnego dnia Kamil zobaczył na ekranie promptera tekst wiadomości w postaci zaszyfrowanej, ze złośliwym uśmieszkiem na jego końcu :-> Nasz prezenter nie wahał się ani chwili i od razu zwrócił się o pomoc do Ciebie.

Napisz program, który odkoduje zaszyfrowany tekst. Algorytm szyfrowania jest następujący: dla tekstu o długości n znaków (gdzie kolejne znaki mają indeksy od 1 do n) wyznaczamy element środkowy o indeksie (n + 1) div1 2 i przesuwamy go na początek tekstu. Operację tę powtarzamy rekurencyjnie dla tekstu z prawej i z lewej strony środkowego znaku. Oto schemat działania algorytmu szyfrowania dla słowa „ALGORYTM”:

  1. Wyznaczamy środkowy element: (8 + 1) div 2 = 4
    ALG-O-RYTM
  2. Przestawiamy środkowy element na początek tekstu:
    O-ALG-RYTM
  3. Powtarzamy pierwsze dwa punkty dla tekstu, który na początku znajdował się po lewej stronie litery O:
    O-L-A-G-RYTM
  4. To samo robimy dla tekstu z prawej strony litery O:
    O-L-A-G-Y-R-TM
  5. Ponieważ tekst jest podzielony na fragmenty krótsze niż 3 znaki to nie mamy już czego przestawiać. Zakodowana postać słowa „ALGORYTM” to „OLAGYRTM”.

Wejście

W pierwszej i jedynej linii wejścia znajduje się zaszyfrowany tekst, którego długość nie przekroczy 10000 znaków. Tekst może zawierać wielkie i małe litery alfabetu angielskiego, spacje oraz znaki interpunkcyjne.

Wyjście

Na wyjściu należy wypisać tekst w postaci odszyfrowanej.

Przykład #1

Dla danych:

OLAGYRTM

Twój program powinien wypisać:

ALGORYTM

Przykład #2

Dla danych:2

 laeNi mi nc gsepzeno izaispianze adnpn o aochc!

Twój program powinien wypisać:

Nie ma nic lepszego niz pisanie zadan po nocach!

  1. Przez operator div rozumiemy dzielenie bez reszty np. 7 div 2 = 3
  2. Przed pierwszym wyrazem w danych z przykładu drugiego znajduje się pojedyncza spacja!

Dodane przez:Maciej Boniecki
Data dodania:2009-10-31
Limit czasu wykonania programu:1s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: ASM64 SCM qobi
Pochodzenie:Wiosenne Zawody Programistyczne 2009

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.