Answer of the problem and its tests.