Парадокс Банаха-Тарського стверджує, що, даючи кульку в тривимірному просторі, можна розкласти кулю на кінцеве число підмножин точок. Ці роз'єднані набори точок можуть бути потім зібрані для отримання двох примірників початкового кулі. Тоді ви б теоретично мали два однакові кулі.
Процес повторної збірки складається лише з переміщення вищезазначених підмножин та обертання їх, не змінюючи при цьому їх просторової форми. Це можна зробити за допомогою лише п’яти суміжних підмножин.
Набори диз'юнкту не мають загальних елементів за визначенням. Де A
і B
є будь-які дві підмножини початкового кулі, загальні елементи між A
і B
є порожнім набором. Це показано в наступному рівнянні.
Для розрізнених множин нижче, загальні члени утворюють порожній набір.
Змагання
Напишіть програму, яка може приймати вхідний ASCII «м'яч» і виводити дублікат «кулька».
Вхідні дані
Ось приклад кулі введення:
##########
###@%$*.&.%%!###
##!$,%&?,?*?.*@!##
##&**!,$%$@@?@*@&&##
#@&$?@!%$*%,.?@?.@&@,#
#,..,.$&*?!$$@%%,**&&#
##.!?@*.%?!*&$!%&?##
##!&?$?&.!,?!&!%##
###,@$*&@*,%*###
##########
Кожна сфера окреслена знаками фунта ( #
) і заповнена будь-який з тез символів: .,?*&$@!%
. Кожен вхід буде розміром 22х10 символів (ширина по висоті).
Створення дубліката
По-перше, кожній точці всередині кулі надається нумерована точка на основі її індексу в .,?*&$@!%
. Ось наведений вище приклад, колись пронумерований:
##########
###7964151998###
##86295323431478##
##5448269677374755##
#75637896492137317572#
#21121654386679924455#
##1837419384568953##
##85363518238589##
###2764574294###
##########
Потім кожна точка зміщується на одну (дев'ять йде в одну):
##########
###8175262119###
##97316434542589##
##6559371788485866##
#86748917513248428683#
#32232765497781135566#
##2948521495679164##
##96474629349691##
###3875685315###
##########
Нарешті, кожне нове значення точки перетворюється назад у відповідний символ:
##########
###!.@&,$,..%###
##%@?.$*?*&*,&!%##
##$&&%?@.@!!*!&!$$##
#!$@*!%.@&.?,*!*,!$!?#
#?,,?,@$&*%@@!..?&&$$#
##,%*!&,.*%&$@%.$*##
##%$*@*$,%?*%$%.##
###?!@&$!&?.&###
##########
Вихідні дані
Ці два кулі потім виводяться поруч у такому вигляді (розділені чотирма пробілами на екваторах):
########## ##########
###@%$*.&.%%!### ###!.@&,$,..%###
##!$,%&?,?*?.*@!## ##%@?.$*?*&*,&!%##
##&**!,$%$@@?@*@&&## ##$&&%?@.@!!*!&!$$##
#@&$?@!%$*%,.?@?.@&@,# #!$@*!%.@&.?,*!*,!$!?#
#,..,.$&*?!$$@%%,**&&# #?,,?,@$&*%@@!..?&&$$#
##.!?@*.%?!*&$!%&?## ##,%*!&,.*%&$@%.$*##
##!&?$?&.!,?!&!%## ##%$*@*$,%?*%$%.##
###,@$*&@*,%*### ###?!@&$!&?.&###
########## ##########
Примітка. Зсув значень точок та пізніших символів символізує обертання, виконані для повторного збирання підмножини точок (угруповання символів).