Kvadrat Şifrələmə
Məxfi mesajlar yaratmaq üçün istifadə edilən klassik "Kvadrat Şifrələmə" (Square Code) metodunu tətbiq edən proqram yazın.
Şifrələmə prosesi aşağıdakı addımlardan ibarətdir:
Normallaşdırma (Normalization): İngilis dilində verilmiş mətndəki bütün boşluqlar və durğu işarələri silinir, bütün hərflər isə kiçik registrə (lowercase) keçirilir.
Ölçülərin tapılması: Normallaşdırılmış mətn xəyali bir düzbucaqlı (və ya kvadrat) matrisə yerləşdirilməlidir. Əgər mətnin uzunluğu L-dirsə, matrisin sətir (r) və sütun (c) sayı elə tapılmalıdır ki:
r x c >= L
c >= r
c - r <= 1
Matrisin qurulması: Mətn bu r x c ölçülü matrisə sətirlər üzrə (soldan sağa) yazılır. Əgər mətn matrisi tam doldurmursa, boş qalan xanalara boşluq simvolu (
) əlavə edilir.Şifrələmə: Şifrələnmiş mesaj matrisi sütunlar üzrə yuxarıdan aşağıya oxumaqla əldə edilir.
Nəticədə alınan şifrələnmiş mətn, aralarında bir boşluq olmaqla c ədəd blokdan (hər biri r uzunluğunda) ibarət olmalıdır. (Əgər matrisin sonunda boş xanalar qalıbsa, müvafiq sütunların sonundakı hərflər boşluq simvolu olacaq).
Giriş verilənləri:
Tək bir sətirdə şifrələnməli olan orijinal ingiliscə mətn (S) verilir. Mətn yalnız ASCII simvollarından ibarətdir.
Çıxış verilənləri:
Yuxarıdakı qaydalara əsasən şifrələnmış mətni aralarında boşluq olan bloklar şəklində çap edin.
Məhdudiyyətlər
1 ≤ S ≤ 104