Es gibt zwei Holzstücke. Beide bestehen aus einem geraden Körper und einigen zusätzlichen Blöcken unterhalb des Körpers. Ein Beispielstück mit zusätzlichen Blöcken an (0-indizierten) Positionen 0,4,7,9,10:
XXXXXXXXXXX
X X X XX
Das Stück kann als 01
binäre Sequenz dargestellt werden, wobei das i
dritte Zeichen angibt, ob sich an der i
dritten Position ein Block befindet . Das obere Beispiel kann als dargestellt werden10001001011
.
Wir können zwei Teile zusammenfügen, indem wir das zweite vertikal spiegeln (und vielleicht auch horizontal spiegeln). Nach dem Flip (s) finden wir eine Ausrichtung, in der die beiden Teile zu einer Höhe von 3 zusammengefügt werden können.
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
Das Beispiel ergab eine Gesamtbreite von 12 Blöcken.
Sie sollten ein Programm oder eine Funktion schreiben, die zwei Zeichenfolgen als Eingabe für die beiden Teile empfängt und eine Ganzzahl mit der minimal erreichbaren Breite ausgibt und einer Höhe von 3 .
Eingang
- Zwei Zeichenfolgen bestehend aus den Zeichen
0
und1
. - Beide Zeichenfolgen enthalten mindestens ein Zeichen.
- Sie können die beiden Zeichenfolgen als eine Zeichenfolge empfangen, die durch ein einzelnes Leerzeichen verbunden ist.
Ausgabe
- Eine einzelne positive ganze Zahl, die minimal erreichbare Gesamtbreite.
Beispiele
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
Dies ist Code Golf, also gewinnt der kürzeste Einstieg.