eolymp
bolt
Try our new interface for solving problems
Məsələlər

Özüaçılan şifrələmə

Özüaçılan şifrələmə

Petya onun icazəsi olmadan oxunmaması üçün gündəliyini şifrələmək qərarına gəldi. Bunun üçün o növbəti şifrədən istifadə etdi. O \textbf{N}×\textbf{N} xanalı (\textbf{N} --- cütdür) trafaret hazırladı, \textbf{N^2/4} xananı elə kəsdi ki, trafareti dörd mümkün variantda (trafareti döndərmək olar, çevirmək isə olmaz) kağız vərəqi üzərində yerləşdirdikdə vərəqin hər bir xanası tam bir dəfə görönsün. Belə bir trafaretə aid nümunə aşağıdakı şəkildə verilmişdir: \includegraphics{https://static.e-olymp.com/content/9d/9d2bbc0557a3b46add86def3b35ffd8105149427.jpg} Bu trafaret vasitəsilə \textbf{N^2} simvol növbəti şəkildə şifrələnir. Əvvəlcə şifrələnən mətnin ilk \textbf{N^2/4} hərfi trafaretin kəsiklərinə yazılır (hərflər gəsilmiş xanalara sətirlər boyunca yuxarıdan aşağıya, hər sətirdə də soldan sağa doğru yazılır. Məsələn, əgər Petya \textbf{ОЛИМПИАДА} sözünü şifrələyirsə, onda bu söz xanalara növbəti şəkildə yazılacaqdır: \includegraphics{https://static.e-olymp.com/content/05/055e8f0e1fc2f4965f01e729abb6e29e262471d3.jpg} Bundan sonra trafaret saat əqrəbi istiqamətində 90 dərəcə döndərilir və kəsilmiş xanalara eyni ardıcıllıqla növbəti \textbf{N^2/4 }hərf yazılır, mətn qurtardıqda qalan xanalar böş saxlanılır. Məsələn, əgər Petya \textbf{ОЛИМПИАДА ПО ИНФОРМАТИКЕ 2006 ГОДА }mətnini verilmiş trafaret vasitəsilə şifrələyirsə, onda şifrələmə prosesi növbəti şəkildə aparılacaq: \textbf{ОЛИМПИАДА} sözünü necə şifrələməyi biz artıq göstərmişdik. Rahat olması üçün burada və sonra boşluğu altcizgi ilə işarələyəcəyik. Trafaretin ikinci qoyuluşunda Petya \textbf{_ПО_ИНФОР} şifrələyə biləcək: \includegraphics{https://static.e-olymp.com/content/c7/c798ca281e54e98e9f5600778666eb8b48295ba3.jpg} Trafaretin üçüncü qoyuluşunda \textbf{МАТИКЕ_20} şifrələyəcək: \includegraphics{https://static.e-olymp.com/content/0b/0b00ed0f447b5a9165d9e94f77b1201b9f539c3f.jpg} Trafaretin dördüncü qoyuluşunda Petya \textbf{06_ГОДА} şifrələyəcək. Qalan xanalar boş qalacaq (hesab edəcəyik ki, onlara bizim altcizgi ilə işarə etdiyimiz boşluq yazılıb): \includegraphics{https://static.e-olymp.com/content/49/496e059b63a98e0593a0183614465bbcbeb39857.jpg} Bundan sonra Petya alınmış mətni sətirdə yazır: \textbf{О М0ЛП6И МОАТГ ИПОИКИДНАДАЕФ О 2РА 0} Etibarlılığını artırmaq üçün Petya şifrələnmiş mətni həmin trafaret vasitəsilə eyni metodla təkrar şifrələmək qərarına gəldi, sonra alınan mətni yenə və s. Bir neçə təkrarlamadan sonra Petya heyrətlə gördü ki, şifrələnmiş mətn ilkin mətnlə üst-üstə düşür. Mətnin məzmunundan asılı olmayaraq Petyanın verilmiş trafaretdən istifadə edərək cari mətni əldə etməsi üçün şifrələmə prosedurlarının minimal sayını təyin edən proqramı tərtib edin. \InputFile Giriş faylında əvvəlcə trafaretin ölçüsü\textbf{ N }(\textbf{2 }≤ \textbf{N }≤ \textbf{150}) verilir. Sonra trafareti əks etdirən hər biri \textbf{0} və ya \textbf{1} olan \textbf{N^2} sayda ədəd verilir. \textbf{1 }kəsilmiş xananı, \textbf{0 }--- kəsilməmiş xananı ifadə edir. Verilmiş ardıcıllığın verilmiş şifrələmə üsulu üçün düzgün trafareti əks etdirdiyinə zəmanət verilir. \OutputFile Çıxış faylında bir ədəd --- mətnin məzmunundan asılı olmayaraq Petyanın verilmiş trafaretdən istifadə edərək cari mətni əldə etməsi üçün şifrələmə əməliyyatının təkrarlanmasının minimal sayını verməli.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
2
1 0
0 0
Çıxış verilənləri #1
2