Concursul "Urmasii lui Moisil" 2002

Clasa a X-a

Problema 2 - Masa

O molecula poate fi definita ca o secventa de atomi si poate fi reprezentata printr-o formula chimica. De exemplu, litera H desemneaza un atom de hidrogen, litera C desemneaza un atom de carbon, O desemneaza un atom de oxigen. Formula COOH reprezinta molecula formata dintr-un atom de carbon, doi atomi de oxigen si un atom de hidrogen.
Pentru a scrie formule în mod eficient utilizam urmatoarele reguli.
Literele ce desemneaza unii atomi pot fi grupate între paranteze. De exemplu formula CH(OH) contine gruparea OH. Gruparile pot fi imbricate, adica o grupare poate contine alte grupari. Pentru a simplifica formula, aparitii consecutive ale aceleiasi litere pot fi înlocuite cu litera respectiva urmata de numarul de aparitii. De exemplu, formula COOHHH poate fi scrisa CO2H3 si reprezinta o molecula constituita dintr-un atom de carbon, doi atomi de oxigen si 3 atomi de hidrogen.
De asemenea, aparitiile consecutive ale aceleiasi grupari pot fi înlocuite de gruparea respectiva, urmata de numarul ei de aparitii. De exemplu, formula CH(CO2H)(CO2H)(CO2H) poate fi scrisa CH(CO2H)3. Molecula reprezentata de aceasta formula consta din 4 atomi de carbon, 4 atomi de hidrogen si 6 atomi de oxigen.
Masa unei molecule este egala cu suma maselor atomilor din care este constituita.

Cerinta
Scrieti un program care citeste o formula chimica în care intervin numai atomi de hidrogen, oxigen si carbon si calculeaza masa moleculei reprezentate de formula respectiva.

Date de intrare
Fisierul de intrare MASA.IN contine pe prima linie o formula chimica construita dupa regulile de mai sus.

Date de iesire
Pe prima linie a fisierului de iesire MASA.OUT va aparea masa moleculei descrisa de formula data.

Restrictii si precizari
- Lungimea unei formule nu depaseste 100 de caractere.
- Masa unei molecule este un numar natural ce nu depaseste 10000.
- Un atom de hidrogen are masa 1, un atom de carbon are masa 12, iar un atom de oxigen are masa 16.
- Numarul care indica repetitiile unei litere sau ale unei grupari este întotdeauna mai mare decât 1 si mai mic strict decât 10.

Exemple

MASA.IN MASA.OUT
COOH 45

 

MASA.IN MASA.OUT
CH(CO2H)3 148

 

MASA.IN MASA.OUT
((CH)2(OH2H)(C(H))O)3 222

Timp maxim de executie: 1 secunda/test