printРабочее место участника

printЗадачи

1170. Пересечение

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0) idea

Напишите программу для нахождения пересечения двух множеств действительных чисел, заданных интервалами. Существуют следующие типы интервалов (здесь `a\ <\ b`):
`[a,b]` обозначает множество действительных чисел `x`,
удовлетворяющих неравенству `a\ ≤\ x\ ≤\ b`
`[a,b)`
`a\ ≤\ x\ <\ b`
`[a,+∞)`
`a\ ≥\ x`
`(a,b]`
`a\ <\ x\ ≤\ b`
`(a,b)`
`a\ <\ x\ <\ b`
`(a,+∞)`
`a\ <\ x`
`(-∞,b]`
`x\ ≤\ b`
`(-∞,b)`
`x\ <\ b`
`(-∞,+∞)`
все множество действительных чисел
Ввести одну строку, не содержащую пробелов, которая содержит два интервала в указанной форме, разделенных символом *. Границы интервалов заданы целыми числами от `-10^9` до `10^9`. Значение `-∞` обозначается символами -@, а `+∞` – символами +@.
Вывести результат пересечения в той же форме. Если в результате пересечения получается множество, содержащее одно число `d`, то его нужно вывести в виде {`d`}. Если получается пустое множество, то вывести символ %.

Пример ввода

(-@,3)*[2,5]

Пример вывода

[2,3)
loading