Знайдіть перетин двох наборів у об'єднаних інтервальних позначеннях
Давши два набори реальних чисел, описаних як об'єднання інтервалів, виведіть опис перетину цих двох множин як об'єднання одного і того ж типу інтервалу.
Набори входів завжди будуть складатися з об'єднань інтервалів, так що кожен інтервал починається і закінчується з різним цілим числом (тобто жоден інтервал не має міри нуля). Однак різні інтервали в одному і тому ж наборі можуть починатися або закінчуватися одним і тим же цілим чи перекриттям.
Набір вихідних даних також повинен бути об'єднанням інтервалів, які починаються і закінчуються цілими числами, але жоден інтервал у висновку не може перекривати жодне інше, навіть на одне ціле число.
Введення може приймати будь-яку форму, відповідну для обраної вами мови, якщо вона складається з двох списків пар цілих чисел.
Наприклад, ви можете представити набір як:
[-10,-4]u[1,5]u[19,20]
Або як:
[[-10,-4],[1,5],[19,20]]
Або як:
[-10,-4;1,5;19,20]
Ваше вихідне представлення повинно бути ідентичним вхідному поданню (за винятком того, що це лише один список інтервалів замість двох).
Приклади / Тестові приклади:
Вхід:
[[[-90,-4],[4,90]],[[-50,50]]]
Вихід:
[[-50,-4],[4,50]]
Іншими словами, ми перетинаємо множину, яка містить усі дійсні числа від -90 до -4 і всі дійсні числа між 4 і 90, з набором, який містить усі дійсні числа від -50 до 50. Перетин - це множина, що містить усі реальні числа від -50 до -4 і всі дійсні числа між 4 і 50. Більш наочне пояснення:
-90~~~~~-4 4~~~~~90 intersected with
-50~~~~~~~~50 yields:
-50~-4 4~~50
Вхід:
"[-2,0]u[2,4]u[6,8]
[-1,1]u[3,5]u[5,9]"
Вихід:
"[-1,0]u[3,4]u[6,8]"
Вхід:
[-9,-8;-8,0;-7,-6;-5,-4]
[-7,-5;-1,0;-8,-1]
Вихід:
[-8,0]
Недійсний вихід (навіть якщо він представляє той самий набір):
[-8,0;-7,-5;-5,0]
Оцінка:
Це кодовий гольф, тому найкоротше джерело в байтах виграє, як потенційно модифіковане наступним бонусом.
Бонус:
-15%, якщо ви також підтримуєте позитивну та негативну нескінченність як межі інтервалів. Ви можете вибрати, які маркери представляють ці числа. (І так, нескінченність - це число у гіперреалах; P)
[[[4,90],[-90,-4]],[[-50,50]]]