Ada dua potong kayu. Keduanya terdiri dari tubuh lurus dan beberapa blok tambahan di bawah tubuh. Contoh karya dengan blok tambahan di posisi (diindeks 0) 0,4,7,9,10:
XXXXXXXXXXX
X X X XX
Potongan dapat direpresentasikan sebagai 01
urutan biner dengan i
karakter th menunjukkan jika ada blok di i
posisi th. Contoh atas dapat direpresentasikan sebagai 10001001011
.
Kita dapat mengumpulkan dua potong dengan membalik secara vertikal potongan kedua (dan mungkin membaliknya juga secara horizontal). Setelah flip, kita dapat menemukan keselarasan di mana kedua potongan dapat disatukan untuk memiliki ketinggian 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
Contoh menghasilkan total lebar 12 blok.
Anda harus menulis sebuah program atau fungsi yang menerima dua string sebagai input yang mewakili dua bagian dan menghasilkan bilangan bulat dengan lebar minimal yang dapat dicapai dengan ketinggian 3.
Memasukkan
- Dua string terdiri dari karakter
0
dan1
. - Kedua string mengandung setidaknya satu karakter.
- Anda dapat memilih untuk menerima dua string sebagai satu bergabung dengan satu ruang.
Keluaran
- Integer positif tunggal, total lebar minimal dapat dicapai.
Contohnya
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
Ini adalah kode golf sehingga entri terpendek menang.