Wprowadzenie
Rozważ dwie tablice tej samej długości, powiedz A = [0,1,0,2]
i B = [-1,1,2,2]
. Załóżmy, że wiemy, że ich zawartość jest w pewnym sensie równoważna, pozycja po pozycji:
0
odpowiada-1
,1
odpowiada1
,0
jest równoważne z2
i2
jest równoważne z2
.
Równoważność jest przechodnia: -1
i 0
są równoważne, a 0
i 2
są równoważne, tak -1
i 2
są również równoważne. Zjednoczenie z A
i B
jest tablica, gdzie każdy element A
(lub B
) został zastąpiony przez największą liczbę, która jest równoważna do niego. W takim przypadku unifikacja byłaby [2,1,2,2]
.
Zadanie
Napisz program lub funkcję, która pobierze dwie niepuste tablice liczb całkowitych o równej długości i wyświetli ich unifikację. Możesz także zmodyfikować jedno z wprowadzonych danych zamiast wracać. Wygrywa najniższa liczba bajtów.
Przypadki testowe
[0] [0] -> [0]
[1] [2] -> [2]
[0,-1] [-1,-1] -> [0,0]
[0,1,0] [2,1,0] -> [2,1,2]
[1,2,3] [0,0,1] -> [3,3,3]
[0,1,0,2] [-1,1,2,2] -> [2,1,2,2]
[1,0,1,-4] [-3,-1,-2,2] -> [1,0,1,2]
[1,2,3,-2] [1,0,-3,-2] -> [1,2,3,-2]
[-3,-2,-1,0,1] [-1,-1,-1,-1,-1] -> [1,1,1,1,1]
[-3,-2,-1,0,1] [2,-1,0,1,-3] -> [2,2,2,2,2]
[-3,5,5,3,1] [4,2,3,1,2] -> [4,5,5,5,5]
[4,0,2,-5,0] [0,4,-5,3,5] -> [5,5,3,3,5]
[-2,4,-2,3,2,4,1,1] [-2,4,1,2,2,3,1,-2] -> [1,4,1,4,4,4,1,1]
[-10,-20,-11,12,-18,14,-8,-1,-14,15,-17,18,18,-6,3,1,15,-15,-19,-19] [-13,6,-4,3,19,1,-10,-15,-15,11,6,9,-11,18,6,6,-5,-15,7,-11] -> [-8,14,18,14,19,14,-8,-1,-1,15,14,18,18,18,14,14,15,-1,18,18]
[20,15,2,4,-10,-4,-19,15,-5,2,13,-3,-18,-5,-6,0,3,-6,3,-17] [-18,7,6,19,-8,-4,-16,-1,13,-18,8,8,-16,17,-9,14,-2,-12,7,6] -> [20,15,20,19,-8,-4,20,15,17,20,17,17,20,17,-6,14,15,-6,15,20]