MMASS - Mass of Molecule
Tác giả: happyboy99x
Ngôn ngữ: C++
#include<cstdio>
#include<cstring>
int mass(char c) { return c == 'C' ? 12 : c == 'H' ? 1 : 16; }
char s[200];
int calc(int lo, int hi) {
int res = 0;
for(int i = lo; i <= hi;)
if(s[i] == '(') {
int cnt = 1, st = i+1;
for(++i; cnt != 0; ++i)
if(s[i] == ')') --cnt;
else if(s[i] == '(') ++cnt;
if(s[i] >= 0x30 && s[i] <= 0x39) res += calc(st,i-2) * (s[i++] - 0x30);
else res += calc(st,i-2);
} else {
if(s[i+1] >= 0x30 && s[i+1] <= 0x39) res += mass(s[i]) * (s[(++i)++] - 0x30);
else res += mass(s[i++]);
}
return res;
}
int main() {
scanf("%s", s);
printf("%d\n", calc(0, strlen(s) - 1));
return 0;
}