Có hai miếng gỗ. Cả hai bao gồm một cơ thể thẳng và một số khối bổ sung bên dưới cơ thể. Một ví dụ với các khối bổ sung tại các vị trí (được lập chỉ mục 0) 0,4,7,9,10:
XXXXXXXXXXX
X X X XX
Các mảnh có thể được biểu diễn dưới dạng một 01
chuỗi nhị phân với i
ký tự thứ hiển thị nếu có một khối ở i
vị trí thứ. Ví dụ trên có thể được biểu diễn dưới dạng 10001001011
.
Chúng ta có thể ghép hai mảnh lại bằng cách lật theo chiều dọc thứ hai (và có thể lật nó theo chiều ngang). Sau khi lật (s) chúng ta có thể tìm thấy một căn chỉnh trong đó hai mảnh có thể được đặt cùng nhau để có chiều cao là 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
Ví dụ dẫn đến tổng chiều rộng là 12 khối.
Bạn nên viết một chương trình hoặc hàm nhận hai chuỗi làm đầu vào đại diện cho hai phần và xuất ra một số nguyên có chiều rộng tối thiểu có thể đạt được với chiều cao là 3.
Đầu vào
- Hai chuỗi bao gồm các ký tự
0
và1
. - Cả hai chuỗi chứa ít nhất một ký tự.
- Bạn có thể chọn nhận hai chuỗi dưới dạng một chuỗi được nối bởi một khoảng trắng.
Đầu ra
- Một số nguyên dương duy nhất, tổng chiều rộng tối thiểu có thể đạt được.
Ví dụ
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
Đây là mã golf nên mục ngắn nhất sẽ thắng.