Хтось побудував по-справжньому фантазійний годинник за допомогою цифр Фібоначчі, що виглядає дуже приємно, але є досить непридатним. Просто так, як нам це подобається! Давайте відтворимо це.
Годинник складається з 5 секцій, що відповідають першим п'яти числам Фібоначчі, починаючи з 1 (тобто 1, 1, 2, 3, 5):
ccbeeeee
ccaeeeee
dddeeeee
dddeeeee
dddeeeee
Годинник здатний відображати 12-годинний час з кроком 5 хвилин. Ось як це працює. Розглянемо час 7:20. Година 7 може бути розкладена на задані числа Фібоначчі як
7 = 2 + 5
Також є 4 одиниці по п'ять хвилин. 4 можна розкласти як
4 = 2 + 1 + 1
Тепер години відображаються червоним кольором, хвилини - зеленим, а якщо число використовується як години, так і хвилини, воно відображається синім кольором. Якщо число взагалі не використовується, воно залишається білим. Отже, вищезгадане було б показано як:
BBGRRRRR
BBGRRRRR
WWWRRRRR
WWWRRRRR
WWWRRRRR
Але зачекай, є ще. Вищезгадані розклади - не єдині можливості. Можна також написати 7 = 3 + 2 + 1 + 1
і те 4 = 3 + 1
, що дало б один із
GGRWWWWW GGBWWWWW
GGBWWWWW GGRWWWWW
BBBWWWWW or BBBWWWWW
BBBWWWWW BBBWWWWW
BBBWWWWW BBBWWWWW
залежно від того, який 1
обраний. Звичайно, є й інші комбінації. Годинник вибирає з усіх дійсних розкладу навмання.
Як я вже говорив ... це може не виграти нагороду за зручність, але це приємно подивитися.
Змагання
Ваше завдання - реалізувати такий годинник. Ваша програма (або функція) повинна надрукувати ASCII-подання поточного часу (округлене до останнього кратного 5 хвилин), як описано вище до STDOUT або найближчої альтернативи. Ви можете прочитати час у будь-якому загальному форматі як вхідний або отримати його за допомогою стандартних функцій бібліотеки. Ви не повинні вважати, що поточний / заданий час ділиться на 5 хвилин.
Ваше рішення повинно вибиратися випадковим чином з усіх можливих уявлень поточного часу. Тобто кожне подання повинно бути надруковано з ненульовою ймовірністю.
Опівночі та полудні слід трактувати як 0:00
(на відміну від 12:00
).
Ви можете необов'язково надрукувати один символ нового рядка.
Ви можете використовувати будь-які чотири окремі символи ASCII для друку (коди символів 0x20 до 0xFE) замість RGBW
. Будь ласка, вкажіть свій вибір у своїй відповіді та використовуйте послідовно.
Це кодовий гольф, тому найкоротша відповідь (у байтах) виграє.