Dövriyyənin fırlanması#7735

Dövriyyənin fırlanması

1 saniyə
64 meqabayt
Çox asan

Bir vaxtlar məlumatların kodlaşdırılması üçün sadə bir sxem istifadə olunurdu - simvolların əlifbada döndərilməsi və yenidən yazılması. Bu variantlardan biri ROT13 idi, burada A-Z simvolları 13 mövqeyə döndərilirdi. Bu, 1990-cı illərin sonlarından 2000-ci illərin əvvəllərinə qədər məlumatları "gizlətməyə" çalışan bir çox tətbiqlərdə geniş istifadə olunan təhlükəsiz olmayan bir sxem idi.

Insecure Inc. təqdim olunan sxemi əvvəlcə tərsinə çevirməklə, sonra isə döndərməklə "yaxşılaşdıran" bir alqoritm yaratmaq vəzifəsini götürdü. Məsələn, ABCD sətrinə tərsinə çevirmə və 1 döndərmə tətbiq edək: tərsinə çevirdikdən sonra DCBA alırıq və 1 mövqeyə döndərdikdən sonra EDCB alırıq.

Siz yalnız böyük hərflər, alt xətt simvolları və nöqtələrdən ibarət olan sətirlər üçün göstərilən kodlaşdırma sxemini həyata keçirməlisiniz. Döndərmələr aşağıdakı əlifba sırasına uyğun olaraq aparılmalıdır:

ABCDEFGHIJKLMNOPQRSTUVWXYZ_.

Alt xətt simvolu Z-dən sonra gəlir, nöqtə isə alt xəttdən sonra gəlir. 1 irəli döndərmə 'A'nın 'B' ilə əvəz olunması deməkdir, yəni 'A' → 'B', 'B' → 'C', ..., 'Z' → ' _ ', ' _ ' → '.' və '.' → 'A'. Eyni şəkildə 3 döndərmə 'A' → 'D', 'B' → 'E', ..., '.' → 'C' deməkdir.

Giriş məlumatları

Hər bir sətir tam ədəd n və simvollar sətrindən ibarətdir. n ədədi (1 ≤ n ≤ 27) irəli döndərmə mövqelərinin sayını göstərir. Sətir kodlaşdırılmalı olan mesajı təmsil edir, o, böyük hərflər, alt xəttlər və nöqtələrdən ibarət 1-dən 40-a qədər simvol ehtiva edir. Sonuncu sətir 0 ehtiva edir və giriş məlumatlarının sonunu göstərir.

Çıxış məlumatları

Hər bir test üçün döndərmə və tərsinə çevirmə əməliyyatlarından sonra "kodlaşdırılmış" mesajı ayrıca sətirdə çıxarın.

Nümunələr

Nümunə 1

Loading
Loading