บทนำ
แผนที่ของเบเกอร์เป็นระบบพลังสำคัญที่แสดงพฤติกรรมวุ่นวาย มันเป็นฟังก์ชั่นจากตารางหน่วยเพื่อกำหนดตัวเองอย่างสังหรณ์ใจดังนี้
0.5×1
ตัดตารางในแนวตั้งในช่วงครึ่งปีที่เกิดขึ้นในสองรูปสี่เหลี่ยมขนาด- สแต็คครึ่งขวาที่ด้านบนของด้านซ้ายส่งผลให้ขนาดหนึ่งรูปสี่เหลี่ยมผืนผ้า
0.5×2
- บีบอัดสี่เหลี่ยมกลับเข้าไปใน
1×1
ตาราง
ในการท้าทายนี้คุณจะใช้การแปลงแบบแยกส่วน
อินพุตและเอาต์พุต
ข้อมูลของคุณมีอาร์เรย์ 2 มิติของตัวอักขระ ASCII และช่องว่างที่มีขนาดบาง2m×2n
m, n > 0
เอาต์พุตของคุณคืออาร์เรย์ที่คล้ายกันซึ่งได้รับดังต่อไปนี้โดยใช้6×4
อาร์เรย์
ABCDEF
GHIJKL
MNOPQR
STUVWX
ตัวอย่างเช่น. ขั้นแรกให้แบ่งครึ่งขวาของอาร์เรย์ที่ด้านบนของครึ่งซ้าย:
DEF
JKL
PQR
VWX
ABC
GHI
MNO
STU
จากนั้นแบ่งคอลัมน์ออกเป็นคู่ของอักขระและหมุนแต่ละคู่ตามเข็มนาฬิกา 90 องศาตามลำดับ "บีบอัด" สี่เหลี่ยมสูงกลับเป็นรูปร่างเดิม:
JDKELF
VPWQXR
GAHBIC
SMTNUO
นี่เป็นเอาต์พุตที่ถูกต้องสำหรับอาร์เรย์ข้างต้น
กฎระเบียบ
รูปแบบอินพุตและเอาต์พุตมีความยืดหยุ่น คุณสามารถใช้สตริงที่มีการ จำกัด บรรทัดใหม่รายการของสตริงหรืออาร์เรย์ 2 มิติของอักขระ อย่างไรก็ตามอินพุทและเอาท์พุทต้องมีรูปแบบที่แน่นอน: คุณต้องสามารถวนซ้ำการส่งของคุณได้หลายครั้งในอินพุตที่ถูกต้อง
คุณสามารถเขียนโปรแกรมเต็มหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต
กรณีทดสอบ
Input:
12
34
Output:
42
31
Input:
Hell
! o
d -
lroW
Output:
lol
o W-
!H e
ldr
Input:
ABCDEF
GHIJKL
MNOPQR
STUVWX
Output:
JDKELF
VPWQXR
GAHBIC
SMTNUO
Input:
*___ ___ o
o|__) |__) *
*| | o
o __ __ *
*| | _ o
o|__ |__| *
Output:
|_____) *o
|_ _ *o
||_ __| *o
o*|_____)
o* |_ _
o*||_ _