BETA

Difficulty Level: Easy

Submissions: 13025 Accuracy:

15.82%

Get minimum element from stack (Function Problem)

Implement a Stack in which you can get min element in O(1) time and O(1) space.

Input (To be used for Expected Output):
The first line of the input contains an integer 'T' denoting the number of test cases. Then T test cases follow.
First line of each test case contains an integer Q denoting the number of queries . 
A Query Q is of 3 Types
(i)   1 x (a query of this type means  pushing 'x' into the stack)
(ii)  2 (a query of this type means to pop element from stack and print the poped element)
(iii) 3 (a query of this type means to print the minimum element from the stack)

The second line of each test case contains Q queries seperated by space.

Output:

The output for each test case will  be space separated integers having -1 if the stack is empty else the element poped out  or min element from the stack .
You are required to complete the three methods push which take one argument an integer 'x' to be pushed into the stack , pop which returns a integer poped out from the stack and getMin which returns the min element from the stack.

Constraints:
1<=T<=100
1<=Q<=100
1<=x<=100

Example:
Input

1
6
1 2 1 3 2 3 1 1 3    

Output
3 2 1

Explanation:
In the first test case for query 
1 2    the stack will be {2}
1 3    the stack will be {2 3}
2       poped element will be 3 the stack will be {2}
3       min element will be 2 
1 1    the stack will be {2 1}
3       min element will be 1 and 

** For More Input/Output Examples Use 'Expected Output' option **

Contributor: Amit Khandelwal


					   
It is recommended to 'Compile & Test' your code before clicking 'Submit'!

Compilation/Execution Result:

Need help with your code? Please use ide.geeksforgeeks.org, generate link and share the link here.