結合区間表記で2つのセットの共通部分を見つける
区間の和集合として記述された2つの実数セットが与えられた場合、これら2つのセットの共通部分の説明を、同じタイプの区間の和集合として出力します。
入力セットは常に、各インターバルが異なる整数で開始および終了するように、インターバルの和集合で構成されます(つまり、どのインターバルにもメジャーゼロはありません)。ただし、同じセット内の異なる間隔は、同じ整数で開始または終了したり、重複したりする場合があります。
出力セットは、整数で開始および終了する間隔の和集合でもある必要がありますが、出力の間隔は、単一の整数でも他の間隔と重複することはできません。
入力は、整数のペアの2つのリストで構成されている限り、選択した言語に適した任意の形式を取ることができます。
[-10,-4]u[1,5]u[19,20]
またはとして:
[[-10,-4],[1,5],[19,20]]
またはとして:
[-10,-4;1,5;19,20]
出力表現は、入力表現と同じでなければなりません(2つではなく1つの間隔のリストであることを除いて)。
例/テストケース:
入力:
[[[-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]]]