คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่รับสตริงที่อธิบายถึงพื้นเป็นอินพุตและเอาต์พุตหรือส่งคืนพื้นที่ของการเรียงเมตาที่ง่ายที่สุดซึ่งสามารถสร้างรูปแบบที่กำหนดของพื้นได้
พื้นเป็นส่วนหนึ่งของตารางสี่เหลี่ยม กระเบื้องสี่เหลี่ยมทุกแผ่นมีสีฟ้าหรือดำ (แสดงโดยa
และb
ในอินพุต)
ตัวอย่างชั้น:
aaaa
ababab
aaaaa
meta-tiling
- ที่ถูกสร้างขึ้นจาก
N
จากM
สี่เหลี่ยม meta-กระเบื้องสี่เหลี่ยมสีฟ้าและสีดำ - meta-tiles ที่ใช้เหมือนกันกับการแปล (คุณไม่สามารถหมุนหรือมิเรอร์)
- หากด้านข้างของแผ่นเมตาทั้งสองมีการเชื่อมต่อพวกเขาควรเชื่อมต่อตามความยาวทั้งหมดของพวกเขา (เช่นแผ่นกระเบื้องเมตาพื้นที่ในลักษณะคล้ายกริด)
ตัวอย่าง meta-tile:
ba
aa
และการปูกระเบื้องเมตาสร้างโดย:
.
.
.
babababa
aaaaaaaa
... babababa ...
aaaaaaaa
babababa
aaaaaaaa
.
.
.
การเรียงข้อมูลเมตานี้จะสร้างชั้นที่แสดงอยู่ด้านบนเมื่อตัวอักษรซ้ายแสดง:
.
.
.
********
***aaaa*
... *ababab* ...
*aaaaa**
********
********
.
.
.
การเรียง meta-tiling นั้นง่ายกว่าแบบอื่นหากพื้นที่ของ meta-tile มีขนาดเล็กลง ตัวอย่างของเรามีพื้นที่2*2 = 4
ที่เล็กที่สุดเท่าที่จะเป็นไปได้สำหรับตัวอย่างชั้น ดังนั้นผลลัพธ์ควรเป็น4
ตัวอย่าง
อินพุต
- สตริงที่ประกอบด้วยตัวอักษร
a b space
และnewline
มีอย่างน้อยหนึ่งหรือa
b
- ตัวอักษร (
ab
) สร้างรูปร่างที่เชื่อมต่อ 4 แบบ (ต่อกัน) - จะไม่มีช่องว่างที่ไม่จำเป็นที่ด้านหน้าของแถวคือจะมีอย่างน้อยหนึ่งแถวเริ่มต้นด้วยหรือ
a
b
คุณสามารถเลือกรูปแบบการป้อนข้อมูลได้สองแบบ:
- ไม่มีช่องว่างที่ไม่จำเป็นที่ท้ายแถว (ดังที่เห็นในตัวอย่าง)
- ช่องว่างทางด้านขวาของแถวเพื่อทำให้แถวทั้งหมดยาวเท่ากันกับแถวที่ยาวที่สุด
ขึ้นบรรทัดใหม่ต่อท้ายเป็นตัวเลือก
เอาท์พุต
- จำนวนเต็มเดียวพื้นที่ของ meta-tile ที่เล็กที่สุดเท่าที่เป็นไปได้ซึ่งมีการเรียงต่อกันมีการปูพื้นการป้อนข้อมูล
ตัวอย่าง
ตัวอย่างคั่นด้วยขีดกลาง ตัวอย่างสามส่วนคืออินพุตเอาต์พุตและหนึ่งในกระเบื้องเมตาดาต้าที่เล็กที่สุดที่เป็นไปได้
a
1
a
-----------------
aaaa
aaa
a
1
a
-----------------
aabaab
abaa
aaba
6
aab
aba
-----------------
aabaab
a a a
aabab
18
aabaab
aaaaaa
aababa
-----------------
ba
aaab
8
baaa
aaab
-----------------
aaaa
ababb
aaaa
10
aaaaa
ababb
-----------------
a aa
ab ba
aba
6
aa
ab
ba
-----------------
aaaa
abab
aaaa
4
aa
ab
-----------------
ba
ba
b
4
ba
ab
-----------------
baa
aba
aab
9
baa
aba
aab
-----------------
aaaa
aabaa
aaaa
6
aaa
aab
นี่คือรหัสกอล์ฟเพื่อให้รายการที่สั้นที่สุดชนะ