มีไม้สองชิ้น ทั้งสองประกอบด้วยตัวตรงและบล็อคเสริมบางส่วนใต้ร่างกาย ตัวอย่างชิ้นส่วนที่มีบล็อกเพิ่มเติมที่ตำแหน่ง (0 ที่จัดทำดัชนีไว้) ตำแหน่ง 0,4,7,9,10:
XXXXXXXXXXX
X X X XX
ชิ้นส่วนสามารถแสดงเป็น01
ลำดับเลขฐานสองที่มีi
อักขระ th แสดงว่ามีบล็อกที่i
ตำแหน่ง th 10001001011
ตัวอย่างด้านบนสามารถแสดงเป็น
เราสามารถรวมสองชิ้นเข้าด้วยกันโดยการพลิกชิ้นที่สองในแนวตั้ง (และอาจพลิกในแนวนอนด้วย) หลังจากการพลิกเราสามารถหาการจัดตำแหน่งที่สามารถรวมสองชิ้นเข้าด้วยกันเพื่อให้มีความสูง 3
Two example pieces:
XXXXXXXXXXX XXXXXXXX
X X X XX XXX
Second piece flipped vertically and horizontally:
XXXXXXXXXXX
X X X XX
XXX
XXXXXXXX
Pieces put together:
XXXXXXXXXXX
XXXXX X XX
XXXXXXXX
ตัวอย่างส่งผลให้มีความกว้างทั้งหมด 12 บล็อก
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่รับสองสายเป็นอินพุตที่แสดงถึงสองส่วนและแสดงผลเป็นจำนวนเต็มความกว้างที่ทำได้น้อยที่สุดด้วยความสูง 3
อินพุต
- สองสายประกอบด้วยตัวอักษรและ
0
1
- สตริงทั้งสองมีอักขระอย่างน้อยหนึ่งตัว
- คุณอาจเลือกที่จะรับทั้งสองสายเป็นหนึ่งเข้าร่วมโดยช่องว่างเดียว
เอาท์พุต
- จำนวนเต็มบวกเดียวความกว้างทั้งหมดทำได้น้อยที่สุด
ตัวอย่าง
0 0 => 1
1 0 => 1
1 1 => 2
11 111 => 5
010 0110 => 5
0010 111 => 5
00010 11011 => 6
01010 10101 => 5
1001 100001 => 6
1110001100001 1100100101 => 14
001101010000101 100010110000 => 16
0010110111100 001011010101001000000 => 21
0010110111100 001011010101001001100 => 28
100010100100111101 11100101100010100100000001 => 27
0010 10111 => 5
0100 10111 => 5
0010 11101 => 5
0100 11101 => 5
10111 0010 => 5
10111 0100 => 5
11101 0010 => 5
11101 0100 => 5
นี่คือรหัสกอล์ฟเพื่อให้รายการที่สั้นที่สุดชนะ