Problem of the day
The first line of the input contains the elements of the doubly linked list separated by a single space and terminated by -1. Hence, -1 would never be a list element.
The second line contains a single integer ‘X’.
Print pair elements separated by a single pace where the first element of the pair should be less than the second element of the pair. The order of pairs does not matter.
Print each unique pair in a separate line.
You do not need to print anything, it has already been taken care of. Just implement the function and return the answer.
Try to solve this problem in linear time complexity without using any other data structures.
1 <= N <= 5*10^5
-2*10^9 <= X <= 2*10^9
-10^9 <= data <= 10^9 and data != -1
Where ‘N’ is the length of the linked list and ‘X’ is the required pair sum value.
Time Limit: 1 sec
2 7 10 14 15 19 22 27 -1
29
2 27
7 22
10 19
14 15
There are four such pairs possible (2, 27), (7, 22), (10, 19), (14, 15) whose sum is 29.
1 4 7 9 11 21 23 29 31 37 41 43 45 48 -1
52
4 48
7 45
9 43
11 41
21 31
23 29
There are six such pairs possible (3, 48), (7, 45), (9, 43), (11, 41), (21, 31), (23, 29) whose sum is 52.