Advertisement
Guest User

Untitled

a guest
May 24th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. int main()
  2. {
  3.  
  4. int n, q, c;
  5. unsigned int tmp;
  6. char temp;
  7.  
  8. cin >> n;
  9. Node **tab_min = new Node *[n+1];
  10. Node **tab_max = new Node *[n+1];
  11. Node *tab = new Node[n+1];
  12.  
  13.  
  14. for (int i = 1; i <= n; i++)
  15. {
  16. cin >> tmp;
  17. tab_max[i] = &(tab[i]);
  18. heap_push_max(tab_max, tmp);
  19. tab_min[i] = &(tab[i]);
  20. heap_push_min(tab_min, tmp);
  21. }
  22.  
  23. cin >> q;
  24.  
  25.  
  26. for (int i = 0; i < q; i++)
  27. {
  28. cin >> c;
  29. cin >> temp;
  30.  
  31. if (temp == 's')
  32. {
  33. for (int i = 0; i < c; i++)
  34. {
  35. if (size_h_min > 0)
  36. {
  37. while (tab_min[1]->data == 1 && size_h_min > 0)
  38. {
  39. delete_root_min(tab_min);
  40. }
  41. tab_min[1]->data = collatz(tab_min[1]->data);
  42. if (tab_min[1]->data == 0 && size_h_min > 0)
  43. {
  44. delete_root_min(tab_min);
  45. }
  46. else if (size_h_min > 0)
  47. {
  48. heapify_up_max(tab_max, tab_min[1]->i_max);
  49. heapify_max(tab_max, tab_min[1]->i_max, size_h_max);
  50. heapify_min(tab_min, 1, size_h_min);
  51. }
  52. }
  53. }
  54. }
  55. else if (temp == 'l')
  56. {
  57. for (int i = 0; i < c; i++)
  58. {
  59. if (size_h_max > 0 && tab_max[1]->data != 1)
  60. {
  61. tab_max[1]->data = collatz(tab_max[1]->data);
  62. if (tab_max[1]->data == 0 && size_h_max > 0)
  63. {
  64. delete_root_max(tab_max);
  65. }
  66. else if (size_h_max > 0)
  67. {
  68. heapify_up_min(tab_min, tab_max[1]->i_min);
  69. heapify_min(tab_min, tab_max[1]->i_min, size_h_min);
  70. heapify_max(tab_max, 1, size_h_max);
  71. }
  72. if (tab_min[1] == 0 && size_h_min > 0)
  73. {
  74. delete_root_min(tab_min);
  75. }
  76. }
  77. }
  78.  
  79.  
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement