Masala #EARMTNDHSU

Xotira 32 MB Vaqt 1000 ms
14

Base64

Ushbu masalada siz berilgan satrni base64 tizimida kodlashingiz kerak. 

Agarda siz base64 qanday ishlashini bilmasangiz quyidagi qo'llanma orqali o'rganishingiz mumkin:

Base64 kodlash tizimi quyidagicha ishlaydi:

  1. Siz berilgan satrdagi har bir shifrni ascii dagi o'rnini topib olasiz (Masalan “Robocontest”[82, 111, 98, 111, 99, 111, 110, 116, 101, 115, 116])
  2. Shundan keyin to'plamdagi har bir sonni binary tizimiga ya'ni ikkilik sanoq sistemasiga 8 talik qilib o'tkazishingiz kerak agar binary sonning o'lchami 8 ga yetmasa uning oldiga 0 larni qo'yib 8 ta qilib olasiz (Masalan bin(82) → 1010010 ushbu 2 lik sanoq sistemasidagi son 7 ta raqamdan tashkil topgani uchun oldiga 1 ta 0 qo'yib 8 ta qilib olamiz: 101001001010010. Natijada butun to'plam 0101001001101111011000100110111101100011011011110110111001110100011001010111001101110100 holatiga keladi
  3. Keyingi navbatda biz bu 1 va 0 lardan tashkil topgan satrni 6 tadan qilib bo'lib chiqamiz agar satrning o'lchami 6 ga bo'linmasa satrning ortiga 6 ga bo'linguncha 0 larni qo'shamiz (Masalan, satr 01010010 bo'lsa, ortiga 4 ta 0 qo'yamiz va 010100100000 ni hosil qilamiz va uni 6 tadan 2 ta bo'lakka 010100 va 100000 qilib bo'lamiz. Bu usul bilan yuqoridagi satrni ['010100', '100110', '111101', '100010', '011011', '110110', '001101', '101111', '011011', '100111', '010001', '100101', '011100', '110111', '010000'] shakliga keltiramiz)
  4. Endi siz yuqoridagi to'plamni har bir qiymatini 10lik sanoq sistemasiga o'tkazasiz (Natijada yuqoridagi to'plam [20, 38, 61, 34, 27, 54, 13, 47, 27, 39, 17, 37, 28, 55, 16] holatiga keladi)
  5. Bu bosqichda siz Base64 index table dan foydalanasiz ya'ni yuqoridagi to'plamdagi har bir sonni quyidagi lug'at yordamida qayta satrga o'tkazasiz:

    Natijada Um9ib2NvbnRlc3Q satri kelib chiqadi

  6. Oxirgi bosqich eng osoni. Har bir base64 tizimidagi satrning o'lchami 4 ga karrali bo'ladi, agar so'nggi natijaning o'lchami 4 ga karrali bo'lmasa u 4 ga karrali bo'lguncha oxiriga = belgisi qo'yiladi (Masalan Um9ib2NvbnRlc3QUm9ib2NvbnRlc3Q=)
  7. Bo'ldi masala ishlandi endi sizning vazifangiz faqatgina yuqoridagi dostonni kompyuter tushunadigan tilga o'girish.

Kiruvchi ma'lumotlar:

1 qatorda satr


Chiquvchi ma'lumotlar:

Masala javobi


Misollar
# input.txt output.txt
1
Robocontest
Um9ib2NvbnRlc3Q=
2
Logic Contest
TG9naWMgQ29udGVzdA==
Izoh:

Qo'llanmani birma bir qo'lda yozib chiqdim agar imloviy yoki texnik xatoliklar yuzaga kelgan bo'lsa let me know.
Tayyor kutubxonalardan foydalanmang. O'zingiz ishlang!