Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. struct node
  6. {
  7.     int data;
  8.     int left;
  9.     int right;
  10. };
  11.  
  12. void through_out(vector<node> &tree, vector <int> &keys, int root)
  13. {
  14.     if (root != -1)
  15.     {
  16.         through_out(tree, keys, tree[root].left);
  17.         keys.push_back(tree[root].data);
  18.         through_out(tree, keys, tree[root].right);
  19.     }
  20. }
  21.  
  22. int ifCorrect(vector <node> &tree)
  23. {
  24.     vector <int> keys;
  25.     through_out(tree, keys, 0);
  26.     for (int i = 1; i < keys.size(); ++i)
  27.         if (keys[i - 1] >= keys[i])
  28.         {
  29.             return 0;
  30.         }
  31.     return 1;
  32. }
  33.  
  34. int main()
  35. {
  36.     int i;
  37.     freopen("check.in", "r", stdin);
  38.     freopen("check.out", "w", stdout);
  39.     cin >> i;
  40.     vector <node> tree(i);
  41.     for (int j = 0; j < i; j++)
  42.     {
  43.         cin >> tree[j].data >> tree[j].left >> tree[j].right;
  44.         tree[j].left--;
  45.         tree[j].right--;
  46.     }
  47.  
  48.     if (i == 0 || ifCorrect(tree))
  49.     {
  50.         cout << "YES";
  51.     }
  52.     else {
  53.         cout << "NO";
  54.     }
  55.  
  56.     return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement