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()
- {
- stack<int> v;
- v.push(0);
- for(int i = 0; i < s.length(); i++)
- {
- if(isalpha(s[i]))
- {
- int val_st = v.top();
- v.pop();
- int nr = m[s[i]];
- if(isdigit(s[i+1]))
- {
- i++;
- v.push(val_st + (nr * (s[i]-'0')));
- }
- else
- {
- v.push(val_st + nr);
- }
- }
- else if(s[i] == '(')
- {
- v.push(0);
- }
- else if(s[i] == ')')
- {
- int top = v.top();
- v.pop();
- int val_st = v.top();
- v.pop();
- if(isdigit(s[i+1]))
- {
- i++;
- v.push(val_st + (top * (s[i] - '0')));
- }
- else
- {
- v.push(val_st + top);
- }
- }
- }
- return v.top();
- }
- int main()
- {
- getline(fin, s);
- m['C'] = 12;
- m['O'] = 16;
- m['H'] = 1;
- int i = 0;
- fout << rezolvare();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement