# coding: utf-8
class Section:
@classmethod
def init_from_str(cls, s):
l, r = s.split(",")
left = float(l[1:])
right = float(r[:-1])
left_border = l[0]
right_border = r[-1]
return cls(left_border, left, right, right_border)
def __init__(self, left_border, left, right, right_border):
self.left_border = left_border
self.left = left
self.right = right
self.right_border = right_border
@property
def is_empty(self):
if self.left > self.right:
return True
elif self.left == self.right and (self.left_border == "(" or self.right_border == ")"):
return True
else:
return False
def __or__(self, other):
if self.left == other.left:
left = self.left
left_border = "(" if "(" in [self.left_border, other.left_border] else "["
elif self.left > other.left:
left = self.left
left_border = self.left_border
else:
left = other.left
left_border = other.left_border
if self.right == other.right:
right = self.right
right_border = ")" if ")" in [self.right_border, other.right_border] else "]"
elif self.right < other.right:
right = self.right
right_border = self.right_border
else:
right = other.right
right_border = other.right_border
return Section(left_border, left, right, right_border)
def __str__(self):
if self.is_empty:
return "{}"
else:
return "{}{:f},{:f}{}".format(self.left_border, self.left, self.right, self.right_border)
while True:
r1, r2 = input().split(" ")
r1 = Section.init_from_str(r1)
r2 = Section.init_from_str(r2)
print(r1|r2)
IyBjb2Rpbmc6IHV0Zi04CgpjbGFzcyBTZWN0aW9uOgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgaW5pdF9mcm9tX3N0cihjbHMsIHMpOgogICAgICAgIGwsIHIgPSBzLnNwbGl0KCIsIikKICAgICAgICBsZWZ0ID0gZmxvYXQobFsxOl0pCiAgICAgICAgcmlnaHQgPSBmbG9hdChyWzotMV0pCiAgICAgICAgbGVmdF9ib3JkZXIgPSBsWzBdCiAgICAgICAgcmlnaHRfYm9yZGVyID0gclstMV0KCiAgICAgICAgcmV0dXJuIGNscyhsZWZ0X2JvcmRlciwgbGVmdCwgcmlnaHQsIHJpZ2h0X2JvcmRlcikKCiAgICBkZWYgX19pbml0X18oc2VsZiwgbGVmdF9ib3JkZXIsIGxlZnQsIHJpZ2h0LCByaWdodF9ib3JkZXIpOgogICAgICAgIHNlbGYubGVmdF9ib3JkZXIgPSBsZWZ0X2JvcmRlcgogICAgICAgIHNlbGYubGVmdCA9IGxlZnQKICAgICAgICBzZWxmLnJpZ2h0ID0gcmlnaHQKICAgICAgICBzZWxmLnJpZ2h0X2JvcmRlciA9IHJpZ2h0X2JvcmRlcgoKICAgIEBwcm9wZXJ0eQogICAgZGVmIGlzX2VtcHR5KHNlbGYpOgogICAgICAgIGlmIHNlbGYubGVmdCA+IHNlbGYucmlnaHQ6CiAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgZWxpZiBzZWxmLmxlZnQgPT0gc2VsZi5yaWdodCBhbmQgKHNlbGYubGVmdF9ib3JkZXIgPT0gIigiIG9yIHNlbGYucmlnaHRfYm9yZGVyID09ICIpIik6CiAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEZhbHNlCgogICAgZGVmIF9fb3JfXyhzZWxmLCBvdGhlcik6CiAgICAgICAgaWYgc2VsZi5sZWZ0ID09IG90aGVyLmxlZnQ6CiAgICAgICAgICAgIGxlZnQgPSBzZWxmLmxlZnQKICAgICAgICAgICAgbGVmdF9ib3JkZXIgPSAiKCIgaWYgIigiIGluIFtzZWxmLmxlZnRfYm9yZGVyLCBvdGhlci5sZWZ0X2JvcmRlcl0gZWxzZSAiWyIKICAgICAgICBlbGlmIHNlbGYubGVmdCA+IG90aGVyLmxlZnQ6CiAgICAgICAgICAgIGxlZnQgPSBzZWxmLmxlZnQKICAgICAgICAgICAgbGVmdF9ib3JkZXIgPSBzZWxmLmxlZnRfYm9yZGVyCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbGVmdCA9IG90aGVyLmxlZnQKICAgICAgICAgICAgbGVmdF9ib3JkZXIgPSBvdGhlci5sZWZ0X2JvcmRlcgoKICAgICAgICBpZiBzZWxmLnJpZ2h0ID09IG90aGVyLnJpZ2h0OgogICAgICAgICAgICByaWdodCA9IHNlbGYucmlnaHQKICAgICAgICAgICAgcmlnaHRfYm9yZGVyID0gIikiIGlmICIpIiBpbiBbc2VsZi5yaWdodF9ib3JkZXIsIG90aGVyLnJpZ2h0X2JvcmRlcl0gZWxzZSAiXSIKICAgICAgICBlbGlmIHNlbGYucmlnaHQgPCBvdGhlci5yaWdodDoKICAgICAgICAgICAgcmlnaHQgPSBzZWxmLnJpZ2h0CiAgICAgICAgICAgIHJpZ2h0X2JvcmRlciA9IHNlbGYucmlnaHRfYm9yZGVyCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmlnaHQgPSBvdGhlci5yaWdodAogICAgICAgICAgICByaWdodF9ib3JkZXIgPSBvdGhlci5yaWdodF9ib3JkZXIKCiAgICAgICAgcmV0dXJuIFNlY3Rpb24obGVmdF9ib3JkZXIsIGxlZnQsIHJpZ2h0LCByaWdodF9ib3JkZXIpCgogICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgaWYgc2VsZi5pc19lbXB0eToKICAgICAgICAgICAgcmV0dXJuICJ7fSIKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gInt9ezpmfSx7OmZ9e30iLmZvcm1hdChzZWxmLmxlZnRfYm9yZGVyLCBzZWxmLmxlZnQsIHNlbGYucmlnaHQsIHNlbGYucmlnaHRfYm9yZGVyKQogICAgICAgIAoKd2hpbGUgVHJ1ZToKICAgIHIxLCByMiA9IGlucHV0KCkuc3BsaXQoIiAiKQogICAgcjEgPSBTZWN0aW9uLmluaXRfZnJvbV9zdHIocjEpCiAgICByMiA9IFNlY3Rpb24uaW5pdF9mcm9tX3N0cihyMikKICAgIHByaW50KHIxfHIyKQo=
WzEsM10gWzIsNF0KKDEsMikgWzEsMl0KWzAsMTAwKSAoNSwxMDAwMDAwMDAwKQooLTEwMDAwMDAwMCwyXSBbMSwxMDAwMDAwMDApClsxLDIpIFsyLDMpCg==
[1,3] [2,4]
(1,2) [1,2]
[0,100) (5,1000000000)
(-100000000,2] [1,100000000)
[1,2) [2,3)
[2.000000,3.000000]
(1.000000,2.000000)
(5.000000,100.000000)
[1.000000,2.000000]
{}
Traceback (most recent call last):
File "./prog.py", line 60, in <module>
EOFError: EOF when reading a line