For this Question: Given a postfix expression, your task is to evaluate given expression.

Infix expression: The expression of the form a operator b. When an operator is in-between every pair of operands.
Postfix expression: The expression of the form a b operator. When an operator is followed for every pair of operands.

Valid operators are +, -, *, /. Each operand may be an integer or another expression.The first line denotes the size of the string(which contains number or operand in form of string) i.e. N.
The next line contains string. The string contains an integer called operand or any of the four operators (+ - * /)

Constraints:-
1 <= n <= 40
1<=number<=500
Output the value of arithmetic expression formed using reverse Polish Notation.Input 1:
5
2 1 + 3 *
Output 1:
9

Explaination 1:
    starting from backside:
    *: ( )*( )
    3: ()*(3)
    +: ( () + () )*(3)
    1: ( () + (1) )*(3)
    2: ( (2) + (1) )*(3)
    ((2)+(1))*(3) = 9
    
Input 2:
5
4 13 5 / +
Output 2:
6

Explanation 2:
    +: ()+()
    /: ()+(() / ())
    5: ()+(() / (5))
    1: ()+((13) / (5))
    4: (4)+((13) / (5))
    (4)+((13) / (5)) = 6, I have written this Solution Code: #include "bits/stdc++.h"
#pragma GCC optimize "03"
using namespace std;
 
#define int long long int
#define ld long double
#define pi pair<int, int>
#define pb push_back
#define fi first
#define se second
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#ifndef LOCAL
#define endl '\n'
#endif
 
const int N = 2e5 + 5;
const int mod = 1e9 + 7;
const int inf = 1e9 + 9;


class Solution {
public:
    int evalRPN(vector<string> &tokens) {
        int size = tokens.size();
        if (size == 0)
            return 0;
        std::stack<int> operands; 

        for (int i = 0; i < size; ++i)
        {
            std::string cur_token = tokens[i];
            if ((cur_token == "*") || (cur_token == "/") || (cur_token == "+") || (cur_token == "-"))
            {
                int opr2 = operands.top();
                operands.pop();
                int opr1 = operands.top();
                operands.pop();
                int result = this->eval(opr1, opr2, cur_token);
                operands.push(result);
                
            }
            else{
                operands.push(std::atoi(cur_token.c_str()));
            }
        }
        return operands.top();
        
    }
    
    int eval(int opr1, int opr2, string opt)
    {
        if (opt == "*")
        {
            return opr1 * opr2;
        }
        else if (opt == "+")
        {
            return opr1 + opr2;
        }
        else if (opt == "-")
        {
            return opr1 - opr2;
        }
        else if (opt == "/")
        {
            return opr1 / opr2;
        }
        return 0;
    }

};

signed main() {
	IOS;
	int n;	cin >> n;
	vector<string> v(n, "");
	for(int i = 0; i < n; i++)
		cin >> v[i];
	Solution s;
	cout << s.evalRPN(v);
	return 0;
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?