代码拉取完成,页面将自动刷新
# -*- coding: utf-8 -*-
# @project : 《Atcoder》
# @Author : created by bensonrachel on 2021/8/27
# @File : TPM(step3)C. Che city(CF).py
def TPM():
l = 0
res = 0
for r in range(n):
while (rate[r] - rate[l] > s):
l += 1
res += l
return res
"""
本题中的数组是有序的!
代码非常简单,也是按照Step2的A题代码框架来修改。
不过注意问题的性质发生了改变:
本题是求数组中最大值和最小值的差值一定要大于r的区间个数
又因为数组是连续的,所以最大值取区间的最后一个和最小值取区间的第一个即可:rate[r] - rate[l]
而且正因为数组有序,所以枚举r,维护一个最小的l的时候,l前面的(不包括l)都是可以的区间左端点,所以需要累加l。
注意:是符合条件就进入while循环,l前进到不符合就退出来,说明此时的l的前面全部区间左端点都是符合条件的,可以累加,这样就不会算重复的区间个数。
"""
if __name__ == "__main__":
n, s = map(int, input().split())
rate = [int(i) for i in input().split()]
print(TPM())
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。