[R50D]三元组2 - 代码源竞赛平台

时空限制

1S/512M

题目描述

给定三个数组 a,b,ca, b, c,它们的长度分别为 na,nb,ncn_a, n_b, n_c,另外给定一个非负整数 dd。

请你求出有多少个三元组 (i,j,k)(i, j, k) 满足以下两个条件:

  1. ai≤bj≤cka_i \leq b_j \leq c_k
  2. ck−ai≤dc_k - a_i \leq d

这里 1≤i≤na1 \leq i \leq n_a,1≤j≤nb1 \leq j \leq n_b,1≤k≤nc1 \leq k \leq n_c。

格式

输入格式

第一行包含四个整数 na,nb,nc,dn_a, n_b, n_c, d,分别表示数组 a,b,ca, b, c 的长度以及给定的数 dd。

第二行包含 nan_a 个整数 a1,a2,…,anaa_1, a_2, \dots, a_{n_a},表示数组 aa 的值。

第三行包含 nbn_b 个整数 b1,b2,…,bnbb_1, b_2, \dots, b_{n_b},表示数组 bb 的值。

第四行包含 ncn_c 个整数 c1,c2,…,cncc_1, c_2, \dots, c_{n_c},表示数组 cc 的值。

输出格式

输出一行一个整数,表示满足条件的三元组 (i,j,k)(i, j, k) 的数量。

样例

样例输入 #1

2 2 2 2
1 2
2 3
3 4

样例输出 #1

6

样例解释 #1

在这个样例中,na=2,nb=2,nc=2,d=2n_a=2, n_b=2, n_c=2, d=2。 我们需要寻找满足 ai≤bj≤cka_i \leq b_j \leq c_k 且 ck−ai≤2c_k - a_i \leq 2 的三元组 (i,j,k)(i, j, k):

  • (1,1,1)(1, 1, 1):a1=1,b1=2,c1=3a_1=1, b_1=2, c_1=3。满足 1≤2≤31 \leq 2 \leq 3,且 3−1=2≤23 - 1 = 2 \leq 2。
  • (1,2,1)(1, 2, 1):a1=1,b2=3,c1=3a_1=1, b_2=3, c_1=3。满足 1≤3≤31 \leq 3 \leq 3,且 3−1=2≤23 - 1 = 2 \leq 2。
  • (1,1,2)(1, 1, 2):a1=1,b1=2,c2=4a_1=1, b_1=2, c_2=4。满足 1≤2≤41 \leq 2 \leq 4,但 4−1=3>24 - 1 = 3 > 2,不满足。
  • (1,2,2)(1, 2, 2):a1=1,b2=3,c2=4a_1=1, b_2=3, c_2=4。满足 1≤3≤41 \leq 3 \leq 4,但 4−1=3>24 - 1 = 3 > 2,不满足。
  • (2,1,1)(2, 1, 1):a2=2,b1=2,c1=3a_2=2, b_1=2, c_1=3。满足 2≤2≤32 \leq 2 \leq 3,且 3−2=1≤23 - 2 = 1 \leq 2。
  • (2,2,1)(2, 2, 1):a2=2,b2=3,c1=3a_2=2, b_2=3, c_1=3。满足 2≤3≤32 \leq 3 \leq 3,且 3−2=1≤23 - 2 = 1 \leq 2。
  • (2,1,2)(2, 1, 2):a2=2,b1=2,c2=4a_2=2, b_1=2, c_2=4。满足 2≤2≤42 \leq 2 \leq 4,且 4−2=2≤24 - 2 = 2 \leq 2。
  • (2,2,2)(2, 2, 2):a2=2,b2=3,c2=4a_2=2, b_2=3, c_2=4。满足 2≤3≤42 \leq 3 \leq 4,且 4−2=2≤24 - 2 = 2 \leq 2。

共有 66 个三元组满足条件,因此输出 6。

数据规模

注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。

子任务编号 分数 na,nb,nc≤n_a, n_b, n_c\le 子任务依赖
11 4040 200200 无
22 6060 2×1052\times 10^5 11

对于 100%100\% 的数据,1≤na,nb,nc≤2×1051 \leq n_a, n_b, n_c \leq 2 \times 10^5,0≤d≤1090 \leq d \leq 10^9,1≤ai,bj,ck≤1091 \leq a_i, b_j, c_k \leq 10^9。