A7514 | 星尘观测窗
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
$Sherry$ 正在记录一条星尘轨道上的能量变化。轨道上有 $n$ 个观测点,第 $i$ 个观测点的能量值为 $a_i$。
她想选择一段连续的观测区间 $[l,r]$。如果这段区间内最大能量值和最小能量值的差不超过 $D$,那么这段区间就被称为“稳定观测窗”。
请你计算一共有多少个稳定观测窗。
这里的稳定观测窗指的是一个连续区间。只要两个区间的左端点或右端点不同,就认为它们是不同的稳定观测窗。
也就是说,即使一个稳定观测窗可以继续向左或向右延长,并且延长后仍然稳定,原来的区间和延长后的区间也会分别计算。
需要统计满足下面条件的连续区间数量:
$\max(a_l,a_{l+1},\cdots,a_r)-\min(a_l,a_{l+1},\cdots,a_r)\le D$
她想选择一段连续的观测区间 $[l,r]$。如果这段区间内最大能量值和最小能量值的差不超过 $D$,那么这段区间就被称为“稳定观测窗”。
请你计算一共有多少个稳定观测窗。
这里的稳定观测窗指的是一个连续区间。只要两个区间的左端点或右端点不同,就认为它们是不同的稳定观测窗。
也就是说,即使一个稳定观测窗可以继续向左或向右延长,并且延长后仍然稳定,原来的区间和延长后的区间也会分别计算。
需要统计满足下面条件的连续区间数量:
$\max(a_l,a_{l+1},\cdots,a_r)-\min(a_l,a_{l+1},\cdots,a_r)\le D$
输入格式
第一行输入两个整数 $n,D$,分别表示观测点数量和稳定差值上限。
第二行输入 $n$ 个整数 $a_1,a_2,\cdots,a_n$,表示每个观测点的能量值。
第二行输入 $n$ 个整数 $a_1,a_2,\cdots,a_n$,表示每个观测点的能量值。
输出格式
输出一个整数,表示稳定观测窗的数量。
输入输出样例
输入 #1
6 3 1 3 2 6 4 5
输出 #1
12
输入 #2
5 0 2 2 1 1 1
输出 #2
9
数据范围
$1\le n\le 2\times 10^5$
$0\le D\le 10^9$
$1\le a_i\le 10^9$
答案可能较大,请使用
long long。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?