AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

K0052. 统计平衡三元组

困难通过率 53% · 提交 97 · 通过 51
枚举数学前缀和

小慕正在处理一个关于平衡性的项目问题。给定一个整数数组 `arr`,以及三个整数 `numA`、`numB`、`numC`,请帮助小慕统计满足以下条件的三元组个数 `(arr[i], arr[j], arr[k])`,其中 `0 <= i < j < k < len(arr)`: 三元组需同时满足以下三个条件: - ` <= numA` - `|arr[j] - arr[k]| <= numB` - `|arr[i] - arr[k]| <= numC` 请返回所有满足条件的三元组的数量。

提示:带虚线的词点一下有通俗解释。

输入描述

输入包含四行: - 第一行一个整数 `n`,表示数组 `arr` 的长度。(`3 <= n <= 1000`) - 第二行包含 `n` 个整数,表示数组 `arr` 中的元素,元素值范围为 `-100000 <= arr[i] <= 100000` - 第三行一个整数 `numA` - 第四行一个整数 `numB` - 第五行一个整数 `numC`

输出描述

输出一个整数,表示满足条件的三元组的数量。

示例

示例 1

输入

8
4 9 9 8 9 5 3 7
1
3
0

输出

3

说明:符合要求的三元组为: - `(9, 9, 9)` - `(9, 8, 9)` - `(9, 8, 9)`

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
4 9 9 8 9 5 i=0 j=1 k=2 |4-9|≤1? |9-9|≤3? |4-9|≤0? 图例 条件1: |arr[i]-arr[j]| ≤ numA 条件2: |arr[j]-arr[k]| ≤ numB 条件3: |arr[i]-arr[k]| ≤ numC
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「统计平衡三元组」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。