模式寻数 II

时间限制: 2000 ms 内存限制: 204800 kb
总通过人数: 0 总提交人数: 0

题目描述

给定一个长度为n的数组A,再给定一个数k,求数组A中任取两个元素相加得到的所有结果当中小于k的结果的数目。

需要注意的是,这里把每一个数当作独立的结果处理。

输入

第一个数为数据组数T(T不超过10)

对于每组数据,第一行为两个数 n, m,表示数组长度n与查询次数m 1<=n,m<=100000

接下来一行,n个整数,表示数组A. 保证对于每个数A[i],0<=A[i]<=100000

接下来m行,每行一个数k,意义见题目描述。1<=k<=200000

输出

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

输入样例

1
5 2
1 5 3 4 2
7
5

输出样例

6
2

样例解释

下述数组是对样例中数组{1,5,3,4,2}任选两个数相加得到的所有的结果:

3 4 5 5 6 6 7 7 8 9

在这个结果中,小于7的数的数目应该为6,小于5的数的数目应该为2

Source

哈尔滨理工大学2016年新生赛,有改动

相关推荐