Programming language : Java
Write the program the should determine if there exists a 3 partition of the given list, P1, P2, and P3 such that the sum of the elements in P1 minus the sum of the elements in P2 are exactly k and the sum of the elements in P2 minus the sum of the elements in P3 are also exactly k. k is a positive integer, or zero.
P1, P2, and P3 are the partitions such that |sum(P1) - sum(P2)| = k and |sum(P2) - sum(P3)| = k.
For example if list is given below:
1. List = [3 1 3 2 1]
k = 4
Output: True
The 3 partition form above list which satifies the condition is:
P1 = {2}, P2 = {3, 3}, P3 = {1, 1}
Sum(P1) = 2
Sum(P2) = 6
Sum(P3) = 1 + 1 = 2
|Sum(P1) - Sum(P2)| = 4
|Sum(P2) - Sum(P3)| = 4
2.
List = [49 49 36 44 43 49 48 36 32 26 38]
k = 88
Output: True
A 3 partition that works is
P1 = {49 49 43 49 48}, P2 = {36 44 32 38}, P3 = {36 26}
Sum(P1) = 238
Sum(P2) = 150
Sum(P3) = 62
|Sum(P1) - Sum(P2)| = 88
|Sum(P2) - Sum(P3)| = 88
Note: When you subtract the partition return result as absolute value (Ignore negative) then compare result. Also please don't provide wrong answers.