Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. const int leftkey = -1000000001;
  8. const int rightkey = 1000000001;
  9.  
  10. struct tree
  11. {
  12. int key;
  13. int left;
  14. int right;
  15. };
  16.  
  17. bool correct(int num,vector<tree>*tree,int lkey,int rkey) {
  18. bool leftsubtree=true;
  19. bool rightsubtree = true;
  20. if ((*tree)[num].key <= lkey || (*tree)[num].key >= rkey) {
  21. return false;
  22. }
  23. else {
  24. if ((*tree)[num].left != 0) {
  25. leftsubtree = correct((*tree)[num].left, tree, lkey, (*tree)[num].key);
  26. }
  27. if ((*tree)[num].right != 0) {
  28. rightsubtree = correct((*tree)[num].right, tree, (*tree)[num].key, rkey);
  29. }
  30. return leftsubtree & rightsubtree;
  31. }
  32. }
  33.  
  34. int main() {
  35. ifstream fin("check.in");
  36. ofstream fout("check.out");
  37. int n;
  38. fin >> n;
  39. vector<tree> ttree;
  40. tree treelevel;
  41. ttree.push_back(treelevel);
  42. for (int i = 0; i < n; i++) {
  43. fin >> treelevel.key >> treelevel.left >> treelevel.right;
  44. ttree.push_back(treelevel);
  45. }
  46. if (n != 0) {
  47. if (correct(1, &ttree, leftkey, rightkey)) {
  48. fout << "YES";
  49. } else {
  50. fout << "NO";
  51. }
  52. }
  53. else {
  54. fout << "YES";
  55. }
  56. return 0;
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement