这是一道交互题,仅支持 C++17, C++20。
雅加达有
对于某个为正数的信号⼲扰参数
- 塔
在塔 的左边,并且塔 在塔 的右边,即 ; - 塔
和塔 的⾼度都⾄多为 ⽶。
Pak Dengklek 想租⼀些信号塔来组建他的新⽆线电⽹络。 你的任务是回答 Pak Dengklek 提出的
- Pak Dengklek 只能租编号在
和 之间的信号塔(包括 和 ); - 信号⼲扰参数
的值为 ; - Pak Dengklek 租的信号塔两两之间必须能够进⾏通信。
注意,⽆论中间信号塔
实现细节
你需要实现以下函数:
void init(int N, int[] H)
: 信号塔的数量。 : ⼀个⻓度为 的数组,给出信号塔的⾼度。- 这个函数恰好被调⽤⼀次,且在函数
max_towers
的所有调⽤之前。
int max_towers(int L, int R, int D)
:信号塔编号区间的边界。 :信号⼲扰参数 的值。- 该函数应返回 Pak Dengklek 最多能租的信号塔数量(⽤于组建信号⽹络),这⾥ Pak
Dengklek 只能租
和 之间(包含 和 )的信号塔,且信号⼲扰参数 的值是 。 - 该函数将被调⽤恰好
次。
例子
考虑如下函数调⽤序列:
init(7, [10, 20, 60, 40, 50, 30, 70])
max_towers(1, 5, 10)
Pak Dengklek 可以租编号为
max_towers(2, 2, 100)
在这个区间⾥只有
max_towers(0, 6, 17)
Pak Dengklek 可以租信号塔
约束条件
(对于所有满足 的 ) (对于所有满足 的 和 )
子任务
- (
分) 存在⼀个满足下述所有条件的信号塔 ( )- 对于
的每个 : - 对于
的每个 :
- 对于
- (
分) - (
分) - (
分) - (
分) - (
分) 的值在max_towers
的所有调⽤中都是相同的 - (
分) 没有额外的限制
特别说明:在 uoj 上,这
评测程序示例
评测程序示例读取如下格式的输⼊:
- 第
行: - 第
⾏: - 第
⾏( ): (对应第 次询问)
评测程序示例按照如下的格式打印你的答案:
- 第
⾏( ):max_towers
对第 次询问的返回值
时间限制:
空间限制: