Well, when I buy gifts for my two wives, I want them to feel equally important to me, but it's hard to go shopping with fixed budgets. Instead, I buy a bunch of stuff and divide them into two groups with as equal value as possible. Then I buy a bunch of chocolates to fix the rest.
But I don't want do all the hard lifting when my computer can do it. And you don't either. So solve this problem so that the next time you need to divide gifts among your wives, you know it would be easy.
Input
1 array of (N*2) elements where N*2 is specified in the 1st line.
The elements of the array in the following line.
Output
2 array of N elements each such that:
Difference of (Sum of elements of array 1) and (Sum of elements of array 2) is as close as possible to 0.
Example
Input
4
1 2 3 4
Output
1 4
2 3
diff=0
Disclaimer: I don't have two wives. But when I feel bad, I imagine having two wives. And suddenly, I am thankful and happy that I have only one. :D
1 1 1 1 1 5
the correct answer would be1 1 1
|1 1 5
, while1 1 1 1 1
|5
would make more sense. \$\endgroup\$