CF2063D Game With Triangles

Description

Even Little John needs money to buy a house. But he recently lost his job; how will he earn money now? Of course, by playing a game that gives him money as a reward! Oh well, maybe not those kinds of games you are thinking about.There are $ n+m $ distinct points $ (a_1,0), (a_2,0), \ldots, (a_{n},0), (b_1,2), (b_2,2), \ldots, (b_{m},2) $ on the plane. Initially, your score is $ 0 $ . To increase your score, you can perform the following operation: - Choose three distinct points which are not [collinear](https://en.wikipedia.org/wiki/Collinearity); - Increase your score by the area of the triangle formed by these three points; - Then, erase the three points from the plane. ![](https://espresso.codeforces.com/5f6a73286fffbc2708f1d388ed58ca5bc0d69d23.png) An instance of the game, where the operation is performed twice.Let $ k_{\max} $ be the maximum number of operations that can be performed. For example, if it is impossible to perform any operation, $ k_\max $ is $ 0 $ . Additionally, define $ f(k) $ as the maximum possible score achievable by performing the operation exactly $ k $ times. Here, $ f(k) $ is defined for all integers $ k $ such that $ 0 \le k \le k_{\max} $ . Find the value of $ k_{\max} $ , and find the values of $ f(x) $ for all integers $ x=1,2,\ldots,k_{\max} $ independently.

Input Format

Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le {3 \cdot 10^4} $ ). The description of the test cases follows. The first line of each test case contains two integers $ n $ and $ m $ ( $ 1 \le n,m \le 2 \cdot 10^5 $ ). The second line of each test case contains $ n $ pairwise distinct integers $ a_1,a_2,\ldots,a_{n} $ — the points on $ y=0 $ ( $ -10^9 \le a_i \le 10^9 $ ). The third line of each test case contains $ m $ pairwise distinct integers $ b_1,b_2,\ldots,b_{m} $ — the points on $ y=2 $ ( $ -10^9 \le b_i \le 10^9 $ ). It is guaranteed that both the sum of $ n $ and the sum of $ m $ over all test cases do not exceed $ 2 \cdot 10^5 $ .

Output Format

For each test case, given that the maximum number of operations is $ k_{\max} $ , you must output at most two lines: - The first line contains the value of $ k_{\max} $ ; - The second line contains $ k_{\max} $ integers denoting $ f(1),f(2),\ldots,f(k_{\max}) $ . You are allowed to omit this line if $ k_{\max} $ is $ 0 $ . Note that under the constraints of this problem, it can be shown that all values of $ f(x) $ are integers no greater than $ 10^{16} $ .

Explanation/Hint

On the first test case, there are $ 1+3=4 $ points $ (0,0),(0,2),(1,2),(-1,2) $ . It can be shown that you cannot perform two or more operations. The value of $ k_{\max} $ is $ 1 $ , and you are only asked for the value of $ f(1) $ . You can choose $ (0,0) $ , $ (-1,2) $ , and $ (1,2) $ as the three vertices of the triangle. After that, your score is increased by the area of the triangle, which is $ 2 $ . Then, the three points are erased from the plane. It can be shown that the maximum value of your score after performing one operation is $ 2 $ . Therefore, the value of $ f(1) $ is $ 2 $ . On the fifth test case, there are $ 8+2=10 $ points. It can be shown that you cannot perform three or more operations. The value of $ k_{\max} $ is $ 2 $ , and you are asked for the values $ f(1) $ and $ f(2) $ . To maximize the score with only one operation, you can choose three points $ (198\,872\,582,0) $ , $ (-1\,000\,000\,000,2) $ , and $ (1\,000\,000\,000,2) $ . Then, the three points are erased from the plane. It can be shown that the maximum value of your score after performing one operation is $ 2\,000\,000\,000 $ . Therefore, the value of $ f(1) $ is $ 2\,000\,000\,000 $ . To maximize the score with exactly two operations, you can choose the following sequence of operations. - Choose three points $ (-509\,489\,796,0) $ , $ (553\,177\,666,0) $ , and $ (-1\,000\,000\,000,2) $ . The three points are erased. - Choose three points $ (-400\,714\,529,0) $ , $ (564\,040\,265,0) $ , and $ (1\,000\,000\,000,2) $ . The three points are erased. Then, the score after two operations becomes $ 2\,027\,422\,256 $ . It can be shown that the maximum value of your score after performing exactly two operations is $ 2\,027\,422\,256 $ . Therefore, the value of $ f(2) $ is $ 2\,027\,422\,256 $ .