U283436 模式寻数

题目背景

本题是清华考研机试 2015 T2 的加强版。

题目描述

给定一个长度为 $n$ 的数组,再给定一个数 $k$ ,求数组中任取两个元素相加得到的所有结果当中小于 $k$ 的结果的数目。 需要注意的是,这里把每一个数当作独立的结果处理。

输入格式

每个测试点有多组输入。 第一个数为数据组数 $T$( $T$ 不超过 $10$ )。 对于每组数据,第一行为两个数 $n, m$,表示数组长度 $n$ 与查询次数 $m$ 。 接下来一行,$n$ 个整数,表示数组 $a $. 保证对于每个数 $a_i, 0\le a_i\le 100000$ 接下来 $m$ 行,每行一个数 $k$ ,意义见题目描述。$1\le k\le 200000$ 。

输出格式

对于每次查询,输出一行,所求数组中任取两个元素相加得到的所有结果当中小于 $k$ 的结果的数目。

说明/提示

### 样例 1 解释 下述数组是对样例中数组 ${1,5,3,4,2} $ 任选两个数相加得到的所有的结果: ```plain 3 4 5 5 6 6 7 7 8 9 ``` ### 数据范围 对于占分 $20\%$ 的测试点,有 $1\le n,m\le 2\times 10^3,\sum n\le 4\times 10^3$ 。 对于占分 $100\%$ 的测试点,有 $1\le n,m\le 10^5,\sum n \le 3\times 10^5$ 。