TopCoder

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

User's AC Ratio

88.2% (45/51)

Submission's AC Ratio

43.3% (65/150)

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

No. Testdata Range Score
1 0~27 20
2 28~53 20
3 54~72 60

Testdata and Limits

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