Lucky

Accepts: 34
Submissions: 267
Time Limit: 6000/3000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
wld有n个数(a1...an)
保证对于任意$1 \leq i \leq n,1 \leq ai \leq n$
wld有一个常数k保证$2 \leq k \leq 2*n$
为了消除歧义保证k为奇数
他有$m$个询问
每个询问有参数$l1,r1,l2,r2$
保证$(1 \leq l1 \leq r1 < l2 \leq r2 \leq n)$
对于每个询问你需要回答有多少个二元组$(i,j)$满足:
$l1 \leq i \leq r1$且$l2 \leq j \leq r2$且$ai + aj = k$
保证$1 \leq n \leq 30000, 1 \leq m \leq 30000$
输入描述
多组数据(最多$5$组)
对于每组数据:
第一行:一个数$n$表示数的个数
接下来一行:一个数$k$表示wld的常数
接下来一行:$n$个数,依次为$a1, a2, … an$
接下来一行:一个数$m$表示询问数
接下来$m$行:四个数$l1, r1, l2, r2$表示这组询问的参数
输出描述
对于每组数据:
对于每个询问输出二元组的数目
输入样例
5
3
1 2 1 2 3
1
1 2 3 5 
输出样例
2
Hint
a1 + a4 = 3
a2 + a3 = 3