Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. #include<iostream>
  2. #include<stack>
  3.  
  4. using namespace std;
  5. int main()
  6. {
  7. stack<int> A;
  8. stack<int>B;
  9. stack<int>C;
  10.  
  11. int sumOfRemovedDigits = 0, numOfMoves = 0;
  12. int numA, numB, disqualifiedNumber, numOfGames;
  13. int x;
  14.  
  15. cout << "Input number of games:";//валидация на числото
  16. do
  17. {
  18. cin >> numOfGames;
  19. } while (numOfGames < 1 || numOfGames>50);
  20.  
  21. cout << "Input number of A elements:";//валидация на числото
  22. do
  23. {
  24. cin >> numA;
  25. } while (numA < 1 || numOfGames>pow(10, 5));
  26.  
  27. cout << "Input number of B elements:";//валидация на числото
  28. do
  29. {
  30. cin >> numB;
  31. } while (numB<1 || numB > pow(10, 5));
  32.  
  33. cout << "Input a disqualified digit:";//валидация на числото
  34. do
  35. {
  36. cin >> disqualifiedNumber;
  37. } while (disqualifiedNumber<1 || disqualifiedNumber > pow(10, 9));
  38.  
  39. int numC = numA + numB;
  40.  
  41. for (int i = 1; i <= numC; i++)//трети стек, в който пушвам всичко (елементите на А и В)
  42. {
  43. do
  44. {
  45. cin >> x;
  46. } while (x<1 || x>pow(10, 6));//отново валидация
  47.  
  48. C.push(x);
  49. }
  50.  
  51. for (int i = 1; i <= numB; i++)//разпределям последно добавените елементи от стек С в стек В
  52. {
  53. B.push(C.top());
  54. C.pop();
  55. }
  56.  
  57. for (int i = 1; i <= numA; i++)//останалите от стек С в стек А
  58. {
  59. A.push(C.top());
  60. C.pop();
  61. }
  62.  
  63. for (int i = 0; i < numOfGames; i++)//въртя цикъл по броя на игрите
  64. {
  65. if (A.top() < B.top() && !(A.empty()) && sumOfRemovedDigits <= disqualifiedNumber)
  66. {
  67. sumOfRemovedDigits += A.top();
  68. A.pop();
  69. numOfMoves++;
  70. }
  71. else if (!(A.top() < B.top()) && !(B.empty()) && sumOfRemovedDigits <= disqualifiedNumber)
  72. {
  73. sumOfRemovedDigits += B.top();
  74. B.pop();
  75. numOfMoves++;
  76. }
  77. else
  78. {
  79. cout << sumOfRemovedDigits;
  80. }
  81. }
  82. while (true) {};
  83. return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement