Напишіть програму або функцію будь-якою мовою програмування, яка приймає 6-значний шістнадцятковий вхід / аргумент. Вхід / аргумент може бути 6 значень або 6 символьним рядком.
Ваша програма повинна виводити прямокутний блок символів із широким розміром у 8 символів, що містить лише шістнадцяткові цифри, що постачаються у поєднанні з пробілами (+ Linefeed). Прямокутний блок - це комбінація менших форм блоку, по одному для кожного з 6 поданих значень.
Тут випливає два демостративні вхідні приклади та дійсні вибірки вибірки:
Зразок введення :
"464fa6" or [4, 6, 4, 15, 10, 6]
Один дійсний вихід рішення :
44 66 ff
44 66 ff
66 ff
aa f
aaa ffff
aa ffff
aaa
6 44
66666 44
Зразок введення :
"35bf12"
Один дійсний вихід рішення :
55555 22
bbbbbbbb
b b b
33
fffff 3
ff ff
ffffff 1
Правила:
Вихід повинен мати прямокутну форму
Вихід може бути будь-якої вертикальної висоти, але повинен бути рівно 8 символів
"Внутрішні блоки", що називаються "формою блоку", не можуть з'єднуватися з будь-якою іншою формою блоку, форми блоку повинні бути відокремлені стінкою пробілів рівно на 1 символ шириною по горизонталі, вертикалі та діагоналі.
Стіна простір не може проходити паралельно зовнішнім краям, на вихідних краях можуть існувати лише ширини стінок на 1 символ. На крайньому краї прямокутника на виході не повинно існувати жодних пов'язаних пробілів.
Ширина стінки простір не повинна ні в один момент перевищувати 1 символу.
Форми внутрішнього блоку повинні бути однаковими з площею символів x, де x - це шістнадцяткове значення, а форма повинна складатися з символу x, де x - шістнадцятковий представник символу.
Внутрішні форми блоку можуть мати будь-яку форму до тих пір, поки всі символи фігури з'єднуються вертикально або горизонтально і не підтверджують правила для стіни пробілів.
6 блокових форм можна розмістити в будь-якому внутрішньому "порядку" всередині виведеного прямокутника.
Дійсний діапазон вводу: 1 ... 15 ("1" ... "f") для кожної форми. Вхід до вашої програми не повинен містити іншої інформації, ніж 6 шістнадцяткових чисел, і вхід не повинен бути сортований інакше, ніж у зразках до того, як він буде наданий вашій програмі / функції. Розкажіть, який формат введення використовує ваше рішення (вхід не може містити іншої інформації, ніж шістнадцяткові значення).
Внутрішня блокова форма може бути порожнистою. Отвір має містити символи пробілу, які вважаються стіною пробілів, тобто отвір у порожній внутрішній формі блоку не може бути більше 1 символу.
Три приклади дійсних порожнистих фігур:
aaa
a aaa
aaa
999
9 9
999
9
ffffff
f ff
ffffff
Один приклад неправильної порожнистої форми:
ffffff
f f
f f
fffff
Я припускаю, що всі комбінації вводу неможливо "вирішити" згідно з правилами, наведеними вище, для цього я перелічу 10 зразків входів, які ваша програма повинна мати можливість "вирішити" (усі перевірені)
1. 464fa6 (same as the first sample)
2. 35bf12 (second example input seen above)
3. 111126
4. ff7fff
5. 565656
6. abcdef
7. 1357bd
8. 8c6a42
9. ab7845
10. 349a67
Ваша програма повинна мати можливість вирішувати будь-який з 10 зразків вхідних даних за резонансний час. перевести резонансний час на 1 годину на звичайний настільний комп'ютер. Скажіть, як: Двоядерний 3 ГГц, 4 Гб пам'яті для довідки.
Це кодовий гольф, виграє найкоротше рішення. Рішенням може бути повністю працююча програма або функція