CF2019B All Pairs Segments
题目描述
你有 $ n $ 个点,这些点位于 $ x $ 轴上,坐标为递增的正整数,分别为 $ x_1 < x_2 < \ldots < x_n $。
对于每对点 $ (i, j) $,其中 $ 1 \leq i < j \leq n $,你将绘制线段 $ [x_i, x_j] $。这些线段是闭合的,即线段 $ [a, b] $ 包含点 $ a, a+1, \ldots, b $。
你有 $ q $ 个查询。在第 $ i $ 个查询中,给定一个正整数 $ k_i $,你需要确定恰好被 $ k_i $ 条线段包含的整点有多少个。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 $ t $( $ 1 \leq t \leq 10^4 $)。接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 $ n $ 和 $ q $( $ 2 \leq n \leq 10^5 $, $ 1 \leq q \leq 10^5 $)——点的数量和查询的数量。
每个测试用例的第二行包含 $ n $ 个整数 $ x_1, x_2, \ldots, x_n $( $ 1 \leq x_1 < x_2 < \ldots < x_n \leq 10^9 $)——这些点的坐标。
每个测试用例的第三行包含 $ q $ 个整数 $ k_1, k_2, \ldots, k_q $( $ 1 \leq k_i \leq 10^{18} $)——查询的参数。
保证所有测试用例中 $ n $ 的总和不超过 $ 10^5 $,所有测试用例中 $ q $ 的总和不超过 $ 10^5 $。
输出格式
对于每个测试用例,输出一行包含 $ q $ 个整数:第 $ i $ 个整数是第 $ i $ 个查询的答案。
### 样例解释
在第一个例子中,你只绘制了线段 $ [101, 200] $ 。没有点恰好被 $ 2 $ 条线段包含,而有 $ 100 $ 个点 $ 101, 102, \ldots, 200 $ 恰好被 $ 1 $ 条线段包含。
在第二个例子中,你绘制了 $ 15 $ 条线段:$ [1, 2], [1, 3], [1, 5], [1, 6], [1, 7], [2, 3], [2, 5], [2, 6], [2, 7], [3, 5], [3, 6], [3, 7], [5, 6], [5, 7], [6, 7] $。点 $ 1, 7 $ 恰好被 $ 5 $ 条线段包含;点 $ 2, 4, 6 $ 恰好被 $ 9 $ 条线段包含;点 $ 3, 5 $ 恰好被 $ 11 $ 条线段包含。
说明/提示
In the first example, you only draw the segment $ [101, 200] $ . No point is contained in exactly $ 2 $ segments, and the $ 100 $ points $ 101, 102, \ldots, 200 $ are contained in exactly $ 1 $ segment.
In the second example, you draw $ 15 $ segments: $ [1, 2], [1, 3], [1, 5], [1, 6], [1, 7], [2, 3], [2, 5], [2, 6], [2, 7], [3, 5], [3, 6], [3, 7], [5, 6], [5, 7], [6, 7] $ . Points $ 1, 7 $ are contained in exactly $ 5 $ segments; points $ 2, 4, 6 $ are contained in exactly $ 9 $ segments; points $ 3, 5 $ are contained in exactly $ 11 $ segments.