|
Объединение
(Время: 1 сек. Память: 16 Мб Сложность: 66%)
Сергей Александрович собирается организовать на втором курсе группу со специальным учебным планом, базирующимся на методике МФТИ и ориентированным на спортивное программирование. За время летних каникул студенты принесли Сергею Александровичу коллективные заявления на перевод в эту группу или перевод из неё. Сергей Александрович поручил Саше составить список студентов, которые в итоге будут переведены. Саша решил взяться за работу по-научному.
Так как всего студентов, фигурирующих в заявлениях, не более 26, Саша обозначил студентов заглавными английскими буквами. Авторов одного заявления он объединил в группы. Каждая группа состоит из некоторого (возможно, пустого, если всех авторов заявления уже успели отчислить) множества студентов и записывается как список соответствующих студентам букв, заключённый в фигурные скобки. Действия, указанные студентами в заявлениях, он обозначил следующим образом.
Пусть даны группы g1 и g2. Тогда операции создают новую группу по следующим правилам:
- (g1+g2): операция ‘+’ между группами означает, что результат – объединение групп, т.е. в итоговый список включаются все те студенты, которые имеются или в g1 или в g2.
- (g1*g2): операция ‘*’ между двумя группами означает, что результат – пересечение групп, т.е. только
те студенты, которые находятся как в g1, так и в g2.
- (g1-g2): операция ‘-’ между группами означает, что результат – студенты группы g1, за исключением тех, которые перечислены в группе g2.
- Операции имеют приоритет: приоритет операции ‘*’ выше, чем у ‘+’ и ‘-’. Операции с равным приоритетом выполняются слева направо (т.е. имеют левую ассоциативность).
- Круглые скобки ‘(’ и ‘)’ используются для группировки операндов выражений аналогично тому, как они это делают в арифметических выражениях.
В результате у Саши получилась своеобразная формула. Ваша задача – по формуле вычислить итоговый состав новой группы.
Входные данные
Входной файл INPUT.TXT содержит формулу. Длина формулы не превышает 260 символов. В записи формулы использованы круглые и фигурные скобки, знаки ‘+’, ‘*’, ‘-’ и большие английские буквы.
Гарантируется, что запись формулы корректна в смысле условий задачи (то есть что в фигурных скобках содержится только какое-то (возможно, нулевое) количество заглавных английских букв, заглавные английские буквы не встречаются вне фигурных скобок, знаки действий стоят только между закрывающей и открывающей скобками (круглой или фигурной), формула, записанная в круглых скобках, является корректной формулой).
Выходные данные
В выходной файл OUTPUT.TXT выведите буквы, которыми обозначены студенты, которых следует перевести в новую группу. Буквы следует выводить в алфавитном порядке и заключать в фигурные скобки.
Примеры
№ | INPUT.TXT | OUTPUT.TXT |
1 | {ABC} | {ABC} |
2 | {ABC}+{DEFG}+{Z}+{} | {ABCDEFGZ} |
3 | {ABE}*{ABCD} | {AB} |
4 | {ABCD}-{CZ} | {ABD} |
5 | {ABC}+{CDE}*{CEZ} | {ABCE} |
6 | (({ABC}+{CDE}))*{CEZ} | {CE} |
Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!
| |