|시간 제한||메모리 제한||제출||정답||맞힌 사람||정답 비율|
|3 초||128 MB||18||16||15||100.000%|
Your mission in this problem is to write a computer program that manipulates molecular formulae in virtual chemistry. As in real chemistry, each molecular formula represents a molecule consisting of one or more atoms. However, it may not have chemical reality.
The following are the definitions of atomic symbols and molecular formulae you should consider.
Heare atomic symbols.
HHHeHHHeis a molecular formula, and represents a molecule consisting of four
H’s and two
HHHeHHHeis also written as
(H2He)2, or even
The set of all molecular formulae can be viewed as a formal language. Summarizing the above description, the syntax of molecular formulae is defined as follows.
Molecule → Atom | Atom Number | ( Molecule ) Number | Molecule Molecule Atom → CapitalLetter | CapitalLetter SmallLetter Number → 2 | 3 | 4 | · · · | 97 | 98 | 99 CapitalLetter → A | B | C | · · · | X | Y | Z SmallLetter → a | b | c | · · · | x | y | z
Each atom in our virtual chemistry has its own atomic weight. Given the weights of atoms, your program should calculate the weight of a molecule represented by a molecular formula. The molecular weight is defined by the sum of the weights of the constituent atoms. For instance, assuming that the atomic weights of the atoms whose symbols are
He are 1 and 4, respectively, the total weight of a molecule represented by
(H2He)2 is 12.
The input consists of two parts. The first part, the Atomic Table, is composed of a number of lines, each line including an atomic symbol, one or more spaces, and its atomic weight which is a positive integer no more than 1000. No two lines include the same atomic symbol.
The first part ends with a line containing only the string
The second part of the input is a sequence of lines. Each line is a molecular formula, not exceeding 80 characters, and contains no spaces. A molecule contains at most 105 atoms. Some atomic symbols in a molecular formula may not appear in the Atomic Table.
The sequence is followed by a line containing a single zero, indicating the end of the input.
The output is a sequence of lines, one for each line of the second part of the input. Each line contains either an integer, the molecular weight for a given molecular formula in the corresponding input line if all its atomic symbols appear in the Atomic Table, or
UNKNOWN otherwise. No extra characters are allowed.
H 1 He 4 C 12 O 16 F 19 Ne 20 Cu 64 Cc 333 END_OF_FIRST_PART H2C (MgF)2As Cu(OH)2 H((CO)2F)99 0
14 UNKNOWN 98 7426