Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool isBST(int k,int tree[200000][3], int min, int max){
- if (k==0) return true;
- int lin=tree[k][1];
- int rin=tree[k][2];
- cout << tree[k][0]<<" ";
- if(tree[k][0]<min || tree[k][0]>max) return false;
- return isBST(lin,tree,min,tree[k][0] ) && isBST(rin,tree,tree[k][0],max );
- }
- bool isBST(int k,int tree[200000][3]){
- return isBST(k,tree, INT_MIN,INT_MAX);
- }
- int main() {
- ifstream fin("check.in");
- ofstream fout("check.out");
- int n;
- int temp;
- int height = 0;
- fin >> n;
- int tree[200000][3];
- for (int i = 1; i <=n; i++) {
- fin >> temp;
- tree[i][0] = temp;
- fin >> temp;
- tree[i][1] = temp;
- fin >> temp;
- tree[i][2] = temp;
- }
- int h;
- string str;
- if(n>0){
- (isBST(1,tree)) ? str="YES" : str="NO";
- fout << str;
- }
- else fout << "YES";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement