eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Химия

Химия

Лимит времени 1 секунда
Лимит использования памяти 122 MiB

Химическая формула молекулы M описывается своим атомным составом. Химические формулы удовлетворяют следующей грамматике:

M := G | M G

G := S | S C

S := A | '(' M ')'

C := T | N E

E := D | D E

T := '2' | ... | '9'

N := '1' | ... | '9'

D := '0' | .. | '9'

A := U | U L | U L L

U := 'A' | .. | 'Z'

L := 'a' | .. | 'z'

Счетчик C является множителем для подгруппы S, ему предшествующей. Например H2O имеет два H (водород) и один O (кислород) атом, а (AlC2)3Na4 содержит 3 Al (алюминий), 6 C (углерод) и 4 Na (натрий) атомов.

Входные данные

Состоит из нескольких тестов. Каждый тест представляет собой одну строку, в которой находится химическая формула. Каждая строка содержит не более 100 символов.

Выходные данные

Для каждого теста вывести одну строку, содержащую атомную декомпозицию химического соединения в виде как показано в примере. Атомы следует выводить в лексикографическом порядке, счетчик 1 подразумевается и явно не пишется. Пробелы в выводимой строке отсутствуют. Все счетчики являются корректными 32-битовыми знаковыми целыми числами.

Пример

Входные данные #1
H2O
(AlC2)3Na4
Выходные данные #1
2H+O
3Al+6C+4Na
Источник 2012 ACM North America - Rocky Mountain, Problem B