Creating Distinct Sums You should write a program or function which receives an integers as input and outputs or returns two integers whose sum is the first one.

There is one further requirement: no number can be part of the output for two different inputs.

Details


You should be able to handle inputs for at least the range -32768 .. 32767 (inclusive).
If your datatype can't handle arbitrary whole numbers, that is fine but your algorithm should work for arbitrary large and small numbers in theory.


Examples

Each block shows a part of a correct or incorrect solution in the format of input =&gt; output.

1 =&gt; 6 -5
2 =&gt; -2 4
15 =&gt; 20 -5

Incorrect, as `-5` is used in two outputs.




-5 =&gt; -15 10
0 =&gt; 0 0
1 =&gt; 5 6
2 =&gt; -5 7

Incorrect, as `5 + 6` isn't `1`.




-1 =&gt; -1 0
0 =&gt; 6 -6
2 =&gt; 1 1

Can be correct if other outputs doesn't collide.


This is code golf so the shortest entry wins.
Pyth, 8 bytes

_J^Q3+QJ


Demonstration. Equivalent to the Python 2 code:

Q=input()
J=Q**3
print -J
print Q+J


So, the output has form (-n**3, n+n**3)

Some outputs:

-5 (125, -130)
-4 (64, -68)
-3 (27, -30)
-2 (8, -10)
-1 (1, -2)
 0 (0, 0)
 1 (-1, 2)
 2 (-8, 10)
 3 (-27, 30)
 4 (-64, 68)
 5 (-125, 130)


These are distinct because cubes are far enough spaced that adding n to n**3 is not enough to cross the gap to the next cube :n**3 &lt; n+n**3 &lt; (n+1)**3 for positive n, and symmetrically for negative n.