Sherlock and Numbers

3.9

86 votes
Approved, Binary Search, Easy, Open, Sorting
Problem

Watson gives to Sherlock a bag of numbers [1, 2, 3 ... N] and then he removes K numbers A1, A2 ... AK from the bag. He now asks Sherlock to find the P'th smallest number in the bag.

Input
First line contains T, the number of test cases. Each test case consists of N, K and P followed by K integers in next line denoting the array A.

Output
For each test case, print P'th smallest number in the bag. If no such number exists output -1.

Constraints
1 ≤ T ≤ 10
20% testdata: 1 ≤ N ≤ 103
20% testdata: 1 ≤ N ≤ 105
60% testdata: 1 ≤ N ≤ 109
0 ≤ Kmin(N, 105)
1 ≤ PN

Note: Large input files. Use scanf instead of cin.

Sample Input
2
4 1 2
1
5 2 4
1 3
Sample Output
3
-1
Time Limit: 2
Memory Limit: 256
Source Limit:
Explanation

Test case 1: Remaining numbers are [2, 3, 4]. 3 is the 2nd smallest remaining numbers.

Test case 2: Remaining numbers are [2, 4, 5]. 4th smallest remaining number doesn't exist.

Editor Image

?