H. HACKER --- Налага се да проверите сигурността на вашата държава, като опитате да разбиете схемата за кодиране на националната агенция за сигурност. Имате няколко ключа и кодирани съобщения, но задачата изглежда невъзможна, тъй като нямате алгоритъма за декриптиране. По една щастлива случайност, късно през нощта, намирате на бюрото на шефа си диаграма на кодиращата схема (показана на фигурата) и откривате, че тя е лесна за разбиване. Напишете съответна програма за дешифриране. Всяко 72-битово съобщение М, разделено на три 24-битови групи, означени отляво на дясно с М1, М2 и М3, се кодира в 96-битова шифрограма C, разделенa на четири 24-битови групи – означени отляво на дясно с C1, C2, C3 и C4, използувайки 72-битов ключ K, разделен на три 24-битови групи – K1, K2 и K3. Кодирането използува три операции над 24-битови операнди: - изключващо-или, обозначено със знака ^; - събиране по модул 2^24 (стандартно събиране, игнориращо преноса към 25-тия бит, с който и без това не разполагаме), обозначено със знака +; - циклично побитово изместване на ляво, обозначено с < < K, където K е броят на изместените битове (резултатът от операцията 110101010001010011101010 < < 7, например, е 100010100111010101101010). Вход: На първия ред на стандартния вход ще бъде зададен броят Т на тестовете. На всеки от следващите Т реда ще са зададени по едно кодирано съобщение и ключът, с който е било кодирано – два низа с 24 и 18 шестнадесетични цифри, съответно, разделени с един интервал. Изход: За всеки тестов пример, програмата трябва да изведе на отделен ред на стандартния изход низ, съдържащ 9-те ASCII символа на дешифрираното съобщение. Дешифрираните ASCII кодове са винаги съставени от печатуеми знаци (ASCII кодове от 0x21 до 0x7e). Всеки ASCII знак съответства на 8-те старши, средни или младши бита на всяка от групите М1, М2 и М3 в този ред, като най-левият ASCII символ съответства на старшите 8 бита, вторият – на средните 8 бита, а третият – на младшите 8 бита на групата. Примерен вход: 2 971871216a9347c0eec722f9 953738ecc01feea4de f3e3efdf6b318e15d36f7876 c37c26932a670b14d3 Примерен изход: BEAUTIFUL IMPORTANT