Dana jest lista par słów składających się ze znaków 0 i 1. W każdej parze drugie ze słów ma długość nie większą od długości pierwszego słowa.
Prefiksem słowa nazywamy dowolny początkowy fragment tego słowa. Podobnie sufiksem słowa nazywamy dowolny końcowy fragment słowa.
Mając daną parę słów a i b, można znaleźć najkrótsze słowo c, które będzie zawierać w sobie oba dane słowa a i b.
Przykłady:
A=10011101, B=111 C:=A, ponieważ A zawiera w sobie słowo B AAAAAAAA A=10011101, B=1100 C:=110011101, trzyznakowy sufiks słowa B jest taki BBBB sam jak trzyznakowy prefiks słowa A AAAAAAAA A=10011101, B=1010 C:=100111010, trzyznakowy prefiks słowa B jest taki BBBB sam jak trzyznakowy sufiks słowa A AAAAAAAA A=10011101, B=000 C:=10011101000, słowo c jest wynikiem sklejenia słowa BBB A ze słowem B
Dla dowolnej pary słów a i b możemy w dosyć łatwy sposób wyznaczyć najkrótsze słowo c zawierające oba słowa a i b stosując następujący algorytm:
1. Jeżeli b zawiera się w a to c:=a 2. W p.p.: a) suf_b - długość najdłuższego sufiksu słowa b, który jest prefiksem a b) pre_b - długość najdłuższego prefiksu słowa b, który jest sufiksem a c) jeśli suf_b>pre_b, to słowo c tworzymy umieszczając słowo b przed słowem a c) w p.p. umieszczamy słowo a przed słowem b
Dla każdej pary słów wypisz słowo otrzymane opisanym powyżej algorytmem.
Pierwszy wiersz wejścia zawiera liczbę całkowitą z zakresu 1..100. W każdym z kolejnych n wierszy zapisano parę słów zerojedynkowych o maksymalnej długości 30 znaków każde.
Wyznaczone słowa dla wszystkich podanych na wejściu par słów.
Dla danych podanych na wejściu:
9 000101101010011111 11000101110 010011110010010101011101100100 1111 101110011100101100011010100 101000100 11011000011010001000 10100110111010101 0101110001110001110000100011 1111001 001110100111110001101001 010010111111110 0100100011101 00 1100010000100000 011111011011110 1111110100101011100110110101 100101101100
Poprawną odpowiedzią jest wyjście:
000101101010011111000101110 010011110010010101011101100100 1011100111001011000110101000100 101001101110101011011000011010001000 010111000111000111000010001111001 0011101001111100011010010111111110 0100100011101 0111110110111100010000100000 111111010010101110011011010100101101100
Jeśli chcesz zobaczyć inny przykład odśwież tę stronę klawiszem F5
Opcje zadania:
Biblioteki : iostream iomanip cmath string Limit czasu : 0.1 s Limit pamięci : 32 MB Słowa niedozwolone :