TopCoder

Thumb hsnu2016
Adrien Wu
$ \begin{align} AC \times 2^9 \\ \text{New TIOJ ?} \end{align} $

User's AC Ratio

87.2% (41/47)

Submission's AC Ratio

41.1% (58/141)

Description

化學式紀錄著不同分子的組成,如$H_2 O$水分子是由2個$H$(氫)與一個$O$(氧)原子組成。更複雜的分子,如Iron(III) Sulfate(硫酸鐵)的分子會由括號包著,如$Fe_2 (SO_4)_3$代表由2個$Fe$(鐵)原子,3個$S$(硫)原子,以及12個$O$(氧)原子組成。所有的原子符號都是由1個或2個字母組成,如$Na$(鈉)、$I$(碘)。第一個字元一定是大寫,第二個一定是小寫。給定一個化學式,將裡面有幾種不同的原子寫出來並計算個數。對於非資訊專才的學生覺得每次用手算太麻煩了,於是求助於你,希望你能幫他設計出一個程式來快速完成作業。

Input Format

輸入只有一行,代表一個化學分子(長度小於256字元)。

子任務(測資) 額外限制 分數
1 (0~27) 每個原子名稱都只有一個字元,且分子化學式中不含括號 20
2 (28~53) 分子化學式中不含括號 20
3 (54~72) 60

Output Format

第一行爲分子名稱,接著幾行為「原子名稱:數量」,每一種原子一行,並以字典排序由小到大輸出。
(保證任一種原子的數量不超過int範圍)

Sample Input

Sample Input #1
C6H12O6

Sample Input #2
NH4(Cr(SCN)4(NH3)2)

Sample Output

Sample Output #1
C6H12O6
C:6
H:12
O:6

Sample Output #2
NH4(Cr(SCN)4(NH3)2)
C:4
Cr:1
H:10
N:7
S:4

Hints

Problem Source

2018 TOI入營考pA

Subtasks

For Testdata: 0 ~ 27, Score: 20
For Testdata: 28 ~ 53, Score: 20
For Testdata: 54 ~ 72, Score: 60
No. Time Limit (ms) Memory Limit (KiB) Output Limit (KiB)
0 1000 262144 262144
1 1000 262144 262144
2 1000 262144 262144
3 1000 262144 262144
4 1000 262144 262144
5 1000 262144 262144
6 1000 262144 262144
7 1000 262144 262144
8 1000 262144 262144
9 1000 262144 262144
10 1000 262144 262144
11 1000 262144 262144
12 1000 262144 262144
13 1000 262144 262144
14 1000 262144 262144
15 1000 262144 262144
16 1000 262144 262144
17 1000 262144 262144
18 1000 262144 262144
19 1000 262144 262144
20 1000 262144 262144
21 1000 262144 262144
22 1000 262144 262144
23 1000 262144 262144
24 1000 262144 262144
25 1000 262144 262144
26 1000 262144 262144
27 1000 262144 262144
28 1000 262144 262144
29 1000 262144 262144
30 1000 262144 262144
31 1000 262144 262144
32 1000 262144 262144
33 1000 262144 262144
34 1000 262144 262144
35 1000 262144 262144
36 1000 262144 262144
37 1000 262144 262144
38 1000 262144 262144
39 1000 262144 262144
40 1000 262144 262144
41 1000 262144 262144
42 1000 262144 262144
43 1000 262144 262144
44 1000 262144 262144
45 1000 262144 262144
46 1000 262144 262144
47 1000 262144 262144
48 1000 262144 262144
49 1000 262144 262144
50 1000 262144 262144
51 1000 262144 262144
52 1000 262144 262144
53 1000 262144 262144
54 1000 262144 262144
55 1000 262144 262144
56 1000 262144 262144
57 1000 262144 262144
58 1000 262144 262144
59 1000 262144 262144
60 1000 262144 262144
61 1000 262144 262144
62 1000 262144 262144
63 1000 262144 262144
64 1000 262144 262144
65 1000 262144 262144
66 1000 262144 262144
67 1000 262144 262144
68 1000 262144 262144
69 1000 262144 262144
70 1000 262144 262144
71 1000 262144 262144
72 1000 262144 262144