Змагання
Напишіть програму, яка може розбити вхідну хімічну формулу (див. Нижче) та вивести її відповідні атоми у формі element: atom-count
.
Вхідні дані
Зразок введення:
H2O
Ваш вхід завжди буде містити принаймні один елемент, але не більше десяти. Ваша програма повинна приймати вхідні дані, які містять дужки, які можуть бути вкладені.
Елементи в рядках завжди будуть відповідати [A-Z][a-z]*
, тобто вони завжди почнуться з великої літери. Числа завжди будуть одноцифровими.
Вихідні дані
Вибірка вибірки (для вищевказаного входу):
H: 2
O: 1
Необов'язково після вашого результату може слідувати новий рядок.
Порушення молекули
Числа праворуч від набору дужок розподіляються кожному елементу всередині:
Mg(OH)2
Потрібно вивести:
Mg: 1
O: 2
H: 2
Цей же принцип застосовується до окремих атомів:
O2
Потрібно вивести:
O: 2
А також ланцюжок:
Ba(NO2)2
Потрібно вивести:
Ba: 1
N: 2
O: 4
Приклади
> Ba(PO3)2
Ba: 1
P: 2
O: 6
> C13H18O2
C: 13
H: 18
O: 2
> K4(ON(SO3)2)2
K: 4
O: 14
N: 2
S: 4
> (CH3)3COOC(CH3)3
C: 8
H: 18
O: 2
> (C2H5)2NH
C: 4
H: 11
N: 1
> Co3(Fe(CN)6)2
Co: 3
Fe: 2
C: 12
N: 12
Вводи позначаються стрілкою (більшим, ніж знаком; >
).
Табло
Щоб ваш рахунок з’явився на дошці, він повинен бути у такому форматі:
# Language, Score
Або якщо ви заробили бонус:
# Language, Score (Bytes - Bonus%)
Редагувати: квадратні дужки вже не є частиною питання. Будь-які відповіді, опубліковані до 3:00 UTC, 23 вересня, є безпечними, і ця зміна не впливатиме.
[HCl] = 0.01 mol L^-1
.
>
.