class Solution {
public:
    bool check(vector<int>& inpush,vector<int>& outpop)
    {
        int n=inpush.size();
        stack<int> st;
        int i=0;int j=0;
        while(i<n)
        {
            st.push(inpush[i]);
            while(!st.empty()&&st.top()==outpop[j])
            {
                st.pop();
                j++;
            }
            i++;
        }
        return j==i;
    }
    bool VerifySquenceOfBST(vector<int> sequence) {
        if(sequence.empty())
        {
            return false;
        }
        vector<int> inorder(sequence);
        sort(inorder.begin(),inorder.end());
        return check(inorder,sequence);
    }
};