Znajdź punkt przecięcia 2 zestawów w notacji Unioned Interval
Biorąc pod uwagę dwa zestawy liczb rzeczywistych opisanych jako suma przedziałów, wypisz opis przecięcia tych dwóch zbiorów jako sumę tego samego rodzaju przedziału.
Zestawy wejściowe zawsze będą się składały ze związków przedziałów, tak że każdy przedział zaczyna się i kończy na innej liczbie całkowitej (tzn. Żaden przedział nie ma miary zero). Jednak różne interwały w tym samym zestawie mogą rozpoczynać się lub kończyć przy tej samej liczbie całkowitej lub nakładać się.
Zbiór wyjściowy musi być również sumą przedziałów, które zaczynają się i kończą na liczbach całkowitych, ale żaden interwał na wyjściu nie może nakładać się na siebie, nawet na jednej liczbie całkowitej.
Dane wejściowe mogą mieć dowolną formę odpowiednią dla wybranego języka, pod warunkiem, że składają się z dwóch list par liczb całkowitych.
Na przykład możesz reprezentować zestaw jako:
[-10,-4]u[1,5]u[19,20]
Lub jako:
[[-10,-4],[1,5],[19,20]]
Lub jako:
[-10,-4;1,5;19,20]
Reprezentacja wyjściowa musi być identyczna z reprezentacją wejściową (z tym wyjątkiem, że jest to tylko jedna lista przedziałów zamiast dwóch).
Przykłady / przypadki testowe:
Wejście:
[[[-90,-4],[4,90]],[[-50,50]]]
Wynik:
[[-50,-4],[4,50]]
Innymi słowy, przecinamy zbiór zawierający wszystkie liczby rzeczywiste od -90 do -4 i wszystkie liczby rzeczywiste od 4 do 90 z zestawem, który zawiera wszystkie liczby rzeczywiste od -50 do 50. Przecięcie jest zbiorem zawierającym wszystkie liczby rzeczywiste od -50 do -4 i wszystkie liczby rzeczywiste od 4 do 50. Bardziej wizualne wyjaśnienie:
-90~~~~~-4 4~~~~~90 intersected with
-50~~~~~~~~50 yields:
-50~-4 4~~50
Wejście:
"[-2,0]u[2,4]u[6,8]
[-1,1]u[3,5]u[5,9]"
Wynik:
"[-1,0]u[3,4]u[6,8]"
Wejście:
[-9,-8;-8,0;-7,-6;-5,-4]
[-7,-5;-1,0;-8,-1]
Wynik:
[-8,0]
Nieprawidłowy wynik (mimo że reprezentuje ten sam zestaw):
[-8,0;-7,-5;-5,0]
Punktacja:
To jest golf golfowy, więc wygrywa najkrótsze źródło w bajtach, potencjalnie zmodyfikowane przez następujący bonus.
Premia:
-15%, jeśli popierasz również dodatnią i ujemną nieskończoność jako granice przedziałów. Możesz wybrać, które tokeny reprezentują te liczby. (I tak, nieskończoność jest liczbą w hiperreałach; P)
[[[4,90],[-90,-4]],[[-50,50]]]