CF1558A.Charmed by the Game
普及-
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
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.
爱丽丝和鲍里斯正在打网球。
一场网球比赛由若干局组成。在每一局中,其中一名选手发球,另一名选手接发球。
选手轮流发球:若一局由爱丽丝发球,则下一局由鲍里斯发球;反之亦然。
每局以其中一名选手获胜结束。若发球方赢得该局,则称其“保发”;若接发方赢得该局,则称其“破发”。
已知整场比赛中爱丽丝赢了 a 局,鲍里斯赢了 b 局。但谁先发球、以及每局具体由谁获胜均未知。
求所有可能的整数 k,使得爱丽丝与鲍里斯之间的这场比赛中,总共恰好发生了 k 次破发。
输入格式
Each test contains multiple test cases. The first line contains the number of test cases t (1≤t≤103). Description of the test cases follows.
Each of the next t lines describes one test case and contains two integers a and b (0≤a,b≤105; 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⋅105.
每个测试包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤103)。随后是测试用例的描述。
接下来的 t 行中,每行描述一个测试用例,包含两个整数 a 和 b(0≤a,b≤105;a+b>0),分别表示 Alice 和 Borys 获胜的游戏局数。
保证所有测试用例中 a+b 的总和不超过 2⋅105。
输出格式
For each test case print two lines.
In the first line, print a single integer m (1≤m≤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 k1,k2,…,km (0≤k1<k2<…<km≤a+b) — the sought values of k in increasing order.
对每个测试用例,输出两行。
第一行,输出一个整数 m(1≤m≤a+b+1)—— 表示在比赛中恰好发生 k 次破发的 k 的取值个数。
第二行,输出 m 个互不相同的整数 k1,k2,…,km(0≤k1<k2<…<km≤a+b)—— 即所求的 k 值,按升序排列。
输入输出样例
输入#1
3 2 1 1 1 0 5
输出#1
4 0 1 2 3 2 0 2 2 2 3
说明/提示
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.
在第一个测试用例中,比赛过程中可能发生 0 到 3 次破发:
- 爱丽丝保发,鲍里斯保发,爱丽丝保发:0 次破发;
- 鲍里斯保发,爱丽丝保发,爱丽丝破发:1 次破发;
- 鲍里斯破发,爱丽丝破发,爱丽丝保发:2 次破发;
- 爱丽丝破发,鲍里斯破发,爱丽丝破发:3 次破发。
在第二个测试用例中,两名选手可能均保发(0 次破发),也可能均破发(2 次破发)。
在第三个测试用例中,可能发生 2 次或 3 次破发:
- 鲍里斯保发,鲍里斯破发,鲍里斯保发,鲍里斯破发,鲍里斯保发:2 次破发;
- 鲍里斯破发,鲍里斯保发,鲍里斯破发,鲍里斯保发,鲍里斯破发:3 次破发。
输入解题思路,AI测评打分。不知道怎么写?