Charmed by the Game
Contest: Codeforces Round 740 (Div. 1, based on VK Cup 2021 - Final (Engine))
Difficulty rating: 1300
Tags: brute force, math

Alice and Borys are playing tennis.

A tennis match consists of games. In each game, one of the players is serving and the other one is receiving.

Players serve in turns: after a game where Alice is serving follows a game where Borys is serving, and vice versa.

Each game ends with a victory of one of the players. If a game is won by the serving player, it's said that this player holds serve. If a game is won by the receiving player, it's said that this player breaks serve.

It is known that Alice won $$$a$$$ games and Borys won $$$b$$$ games during the match. It is unknown who served first and who won which games.

Find all values of $$$k$$$ such that exactly $$$k$$$ breaks could happen during the match between Alice and Borys in total.

Input format:
Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 10^3$$$). Description of the test cases follows.

Each of the next $$$t$$$ lines describes one test case and contains two integers $$$a$$$ and $$$b$$$ ($$$0 \le a, b \le 10^5$$$; $$$a + b > 0$$$) — the number of games won by Alice and Borys, respectively.

It is guaranteed that the sum of $$$a + b$$$ over all test cases does not exceed $$$2 \cdot 10^5$$$.

Output format:
For each test case print two lines.

In the first line, print a single integer $$$m$$$ ($$$1 \le m \le a + b + 1$$$) — the number of values of $$$k$$$ such that exactly $$$k$$$ breaks could happen during the match.

In the second line, print $$$m$$$ distinct integers $$$k_1, k_2, \ldots, k_m$$$ ($$$0 \le k_1 < k_2 < \ldots < k_m \le a + b$$$) — the sought values of $$$k$$$ in increasing order.

Constraints:
Time limit: 2.0 s
Memory limit: 512.0 MB

Note:
In the first test case, any number of breaks between $$$0$$$ and $$$3$$$ could happen during the match:

- Alice holds serve, Borys holds serve, Alice holds serve: $$$0$$$ breaks;
- Borys holds serve, Alice holds serve, Alice breaks serve: $$$1$$$ break;
- Borys breaks serve, Alice breaks serve, Alice holds serve: $$$2$$$ breaks;
- Alice breaks serve, Borys breaks serve, Alice breaks serve: $$$3$$$ breaks.

In the second test case, the players could either both hold serves ($$$0$$$ breaks) or both break serves ($$$2$$$ breaks).

In the third test case, either $$$2$$$ or $$$3$$$ breaks could happen:

- Borys holds serve, Borys breaks serve, Borys holds serve, Borys breaks serve, Borys holds serve: $$$2$$$ breaks;
- Borys breaks serve, Borys holds serve, Borys breaks serve, Borys holds serve, Borys breaks serve: $$$3$$$ breaks.

Example input:
3
2 1
1 1
0 5

Example output:
4
0 1 2 3
2
0 2
2
2 3

Editorial:
First of all, we don't know who served first, but there are only two options, so let's just try both and unite the sets of $$$k$$$'s we get.
Assume that Alice served first. Exactly $$$a+b$$$ games were played. If $$$a+b$$$ is even, both players served exactly $$$\frac{a+b}{2}$$$ times, and if $$$a+b$$$ is odd, Alice served one more time than Borys.
The simplest way to consider both cases is to say that Alice served $$$p = \lceil \frac{a+b}{2} \rceil$$$ times, and Borys served $$$q = \lfloor \frac{a+b}{2} \rfloor$$$ times ($$$\lceil t \rceil$$$ denotes rounding up, and $$$\lfloor t \rfloor$$$ denotes rounding down).
Let $$$x$$$ be the number of times Borys broke Alice's serve ($$$0 \le x \le p$$$), and let $$$y$$$ be the number of times Alice broke Borys' serve ($$$0 \le y \le q$$$).
In this case, the number of games Alice won is $$$a = (p - x) + y$$$, and the number of games Borys won is $$$b = x + (q - y)$$$.
We know neither $$$x$$$ nor $$$y$$$, but let's loop over $$$x = 0 \ldots p$$$. From $$$a = (p - x) + y$$$, we can calculate $$$y = a - (p - x)$$$. If $$$0 \le y \le q$$$, the values of $$$x$$$ and $$$y$$$ represent a valid scenario of the match with exactly $$$x + y$$$ breaks in total.
The case when Borys served first is handled similarly.
Analyzing the formulas further, we can find a "closed-form" solution:
• Let $$$d = \lfloor \frac{\lvert a-b \rvert}{2} \rfloor$$$.
• If $$$a + b$$$ is even, all possible values of $$$k$$$ are $$$d, d + 2, d + 4, \ldots, a + b - d$$$.
• If $$$a + b$$$ is odd, all possible values of $$$k$$$ are $$$d, d + 1, d + 2, \ldots, a + b - d$$$.