题目要求找最长连续区间 [L,R],使区间内任意两个状态值的差的绝对值都不超过 d。
对于一个区间来说:
任意两数差值≤d
等价于:
有n台医疗设备,编号为1到n,每台设备有一个当前的运行状态值。为了监控设备运行是否稳定,医院需要找出连续的设备序列,使得这些设备的运行状态值的差值都不超过某个阈值。
现在给定n台设备的运行状态值和一个阈值d,求最长的连续设备序列,使得序列中任意两台设备的运行状态值之差的绝对值不超过d。如果有多解,输出起始编号最小的序列。
第一行:两个整数n,d (1 ≤ n ≤ 100000, 0 ≤ d ≤ 10000),分别表示设备数量和允许的最大状态差值。
第二行:n个整数,表示n台设备的运行状态值a1,a2,…,an (1 ≤ ai ≤ 10000)。
输出两个整数L, R,表示最长连续设备序列的起始和结束编号(第一台设备编号为1)。
如果有多个长度相同的序列,输出起始编号最小的序列。
如果只有1台设备,或不存在满足条件的序列(任何两个相邻的设备的运行状态值之差的绝对值都超过d),则输出1 1。
输入
9 3
1 4 2 5 7 4 3 8 1
输出
1 3
说明
状态值差值不超过3,满足条件的最长序列及对应起始编号:
1,3的起始编号最小,因此答案为1 3
输入
12 5
5 7 9 6 8 10 12 15 13 14 16 18
输出
1 6
说明
状态值差值不超过5,满足条件的最长序列及对应长度:
结果为1 6
输入
8 5
5 7 3 8 6 4 9 2
输出
1 6
说明
状态值差值不超过5,满足条件的最长序列及对应长度:
结果为1 6
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.