Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<stack>
- using namespace std;
- int main()
- {
- stack<int> A;
- stack<int>B;
- stack<int>C;
- int sumOfRemovedDigits = 0, numOfMoves = 0;
- int numA, numB, disqualifiedNumber, numOfGames;
- int x;
- cout << "Input number of games:";//валидация на числото
- do
- {
- cin >> numOfGames;
- } while (numOfGames < 1 || numOfGames>50);
- cout << "Input number of A elements:";//валидация на числото
- do
- {
- cin >> numA;
- } while (numA < 1 || numOfGames>pow(10, 5));
- cout << "Input number of B elements:";//валидация на числото
- do
- {
- cin >> numB;
- } while (numB<1 || numB > pow(10, 5));
- cout << "Input a disqualified digit:";//валидация на числото
- do
- {
- cin >> disqualifiedNumber;
- } while (disqualifiedNumber<1 || disqualifiedNumber > pow(10, 9));
- int numC = numA + numB;
- for (int i = 1; i <= numC; i++)//трети стек, в който пушвам всичко (елементите на А и В)
- {
- do
- {
- cin >> x;
- } while (x<1 || x>pow(10, 6));//отново валидация
- C.push(x);
- }
- for (int i = 1; i <= numB; i++)//разпределям последно добавените елементи от стек С в стек В
- {
- B.push(C.top());
- C.pop();
- }
- for (int i = 1; i <= numA; i++)//останалите от стек С в стек А
- {
- A.push(C.top());
- C.pop();
- }
- for (int i = 0; i < numOfGames; i++)//въртя цикъл по броя на игрите
- {
- if (A.top() < B.top() && !(A.empty()) && sumOfRemovedDigits <= disqualifiedNumber)
- {
- sumOfRemovedDigits += A.top();
- A.pop();
- numOfMoves++;
- }
- else if (!(A.top() < B.top()) && !(B.empty()) && sumOfRemovedDigits <= disqualifiedNumber)
- {
- sumOfRemovedDigits += B.top();
- B.pop();
- numOfMoves++;
- }
- else
- {
- cout << sumOfRemovedDigits;
- }
- }
- while (true) {};
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement