Your task is to implement the three methods **insertKey, deleteKey, ** and **extractMin **on a Binary Min Heap

**Example**

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

**1. **1 x (a query of this type means to insert an element in the min heap with value x )

**2.** 2 x (a query of this type means to remove an element at position x from the min heap)

**3.**** **3 (a query like this removes the min element from the min heap and prints it ).

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 heap is empty else the min element of the heap from the stack.

You are required to complete the 3 methods **insertKey** which takes one argument the value to be inserted , **deleteKey** which takes one argument the position from where element is to be deleted and **extractMin** which returns the minimum element in the heap .

**Constraints:**

1<=**T**<=100

1<=**Q**<=100

1<=**x**<=100

**Example:
Input**

1

7

1 4 1 2 3 1 6 2 0 3 3

2 6 - 1

In the first test case for query

1 4 the heap will have {4}

1 2 the heap will be { 2 4 }

3 removes min element from heap ie 2 and prints it now heap is {4}

1 6 inserts 6 to heap now heap is {4 6}

2 0 delete element at position 0 of heap now heap is {6}

3 remove min element from heap ie 6 and prints it now the heap is empty {}

3 since heap is empty thus no min element exist so -1 is printed .

PrateekTiwari1 | 182 |

blackshadows | 142 |

TusharSharma3 | 118 |

dhananjaykajla | 116 |

hardikjain814113 | 100 |

Amit Kushwaha 1 | 551 |

TusharSharma3 | 463 |

mb1973 | 378 |

SaurabhPatil3 | 359 |

dhananjaykajla | 342 |

akhayrutdinov | 4971 |

Ibrahim Nash | 4708 |

Quandray | 4277 |

sanjay05 | 3668 |

GB11 | 2857 |

Login to report an issue on this page.