class Solution {
public:
vector<int> seq;
bool verifySequenceOfBST(vector<int> sequence) {
seq=sequence;
return dfs(0,seq.size()-1);
}
bool dfs(int l,int r)
{
if(l>=r) return 1;
int t=seq[r];
int k=l;
while(k<r&&seq[k]<seq[r]) k++;
for(int i=k+1;i<r;i++)
{
if(seq[i]<t) return 0;
}
return dfs(l,k-1)&&dfs(k,r-1);
}
};