Hi, Codeforces community!
I tried to solve this problem by using recursion. But my submission gives wrong answer to test 5. The input is: 20 293434130 567534945 339132630 291152695 959629878 416618095 149341899 479358017 509348379 335313693 386003521 360528367 387150541 724271523 741417449 63831275 308645820 457460287 716709394 977143845. The answer is 5734409263, but my code's output is 5774922309. Can anyone tell where's the mistake please?
Looks like you are using just a simple greedy solution. But it isn't the correct approach and dynamic programming is necessary. Consider the following testcase:
Your solution greedily favours removing elements from the left side, because it thinks that 3-1 is better than 100-99. But a correct solution has to get rid of 99 and 100 as soon as possible.
I remove elements from both sides. I compare 100-3 and 99-1. 100-3<99-1 so I remove 100.
100-3 < 99-1
(which can be also rewritten as100-99 < 3-1
) so you remove 1.