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.|
Problem hidden on 2013-04-22 13:56:30 by SÅ‚awomir Wernikowski

WIPING11 - Szyfrator

Zadanie eliminacyjne w konkursie PING 2013 organizowanym przez
Wydział Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego w Szczecinie

Szyfrator

Prototypowy szyfrator PING-SEKRET szyfruje i deszyfruje wiadomości przesyłane eksperymentalnym grawitacyjnym kanałem transmisyjnym. Alfabet znaków, jakie można użyć w wiadomości jest na razie bardzo skromny - składa się na niego spacja, 26 liter alfabetu łacińskiego, kropka, wykrzyknik, pytajnik, przecinek i znak minus. Kodowanie wiadomości przebiega następująco:

  • jeśli wiadomość wejściowa ma długość nie będącą wielokrotnością liczby osiem, to odpowiednio wydłuża się ją z prawej strony znakami minus; znaki te usuwa się przy dekodowaniu tak, aby uwidaczniały się po stronie odbiorcy; oznacza to, że znaki minus nie powinny być umieszczane na końcu wiadomości źródłowej 
  • każdy znak wiadomości zastępuje się ciągiem 5 bitów odpowiadającym umownemu kodowi znaku; w obecnej implementacji spacja ma kod 0, litery mają kody od 1 do 26, kropka 27, wykrzyknik 28, pytajnik 29, przecinek 30 i minus 31
  • powstały strumień bitów przedstawia się przy pomocy cyfr szesnastkowych z użyciem wielkich liter alfabetu łacińskiego i przesyła do odbiorcy.

Twoim zadaniem jest implementacja szyfratora i deszyfratora kodu PING-SEKRET.

Wejście

Dwa wiersze tekstu:

  • pierwszy zawierający jedno ze słów KODUJ i DEKODUJ, określające tryp pracy szyfratora
  • drugi zawierajacy łańcuch o maksymalnej dlugości 1000 znaków, przeznaczony do szyfracji/deszyfracji

Wyjście

Jeden wiersz tekstu zawierający zaszyfrowany/zdeszyfrowany komunikat.

Przykład

Wejście:

KODUJ
PING-SEKRET

Wyjście:

825C7FCCAB9169FFFFFF

 

Wejście:

DEKODUJ
825C7FCCAB9169FFFFFF

Wyjście:

PING-SEKRET

Informacje dodatkowe

  • program zostanie uruchomiony 10 razy dla różnych zestawów danych

  • każde poprawne rozwiązanie daje 10% punktacji zadania

  • zadanie ma wartość punktową 6,0


Dodane przez:Sławomir Wernikowski
Data dodania:2013-03-17
Limit czasu wykonania programu:1s
Limit długości kodu źródłowego5000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:C CSHARP C++ 4.3.2 CPP C99 JAVA PAS-GPC PAS-FPC PERL PERL6 PHP
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.