Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin("masa.in");
- ofstream fout("masa.out");
- map<char, int> m;
- string s;
- int rezolvare(int& i)
- {
- stack<int> v;
- v.push(0);
- for( ;i < s.length(); i++)
- {
- if(isalpha(s[i]))
- {
- v.push(m[s[i]]);
- }
- else if(isdigit(s[i]))
- {
- int val = v.top();
- v.pop();
- v.push(val * (s[i] - '0'));
- }
- else if(s[i] == '(')
- {
- i++;
- int rez = rezolvare(i);
- v.push(rez);
- }
- else if(s[i] == ')')
- {
- int mt = 0;
- while(!v.empty())
- {
- mt += v.top();
- v.pop();
- }
- return mt;
- }
- }
- int rezultat = 0;
- while(!v.empty())
- {
- rezultat += v.top();
- v.pop();
- }
- return rezultat;
- }
- int main()
- {
- getline(fin, s);
- m['H'] = 1;
- m['C'] = 12;
- m['O'] = 16;
- int i = 0;
- fout << rezolvare(i);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement