有 座瞭望塔,依次编号 。塔 的高度为 ,其瞭望分数为 。初始,。
对于 ,我们称塔 能从塔 瞭望到,当且仅当对于任意 ,都有 。注意, 时,塔 不能从塔 瞭望到。
当从某座塔上执行一次瞭望操作时,能从这座塔瞭望到的所有塔的瞭望分数都会自增 。
现在有 个事件,每个事件是如下的三个类型之一:
- 瞭望:给定 (),在塔 上执行一次瞭望操作。
- 测量:给定 (),计算 。
- 平移:给定 ()。对于任意 ,令
瞭望事件用数组 表示;测量事件用数组 表示;平移事件用数组 表示。注意到这三类事件的数组大小均不同,所以可以用数组大小区分不同的事件类型。
事件按照 的顺序依次发生,事件 用 表示。
令测量事件总数为 ,按照发生顺序编号 。求出所有测量事件的结果。
实现细节
这是一道函数式交互题。你不必,也不应实现 main 函数。
你应当实现以下的函数:
vector<long long> tower_events(vector<int> H, vector<vector<int>> E)
- :大小为 的整数数组。
- :大小为 的整数数组,表示事件。
- 返回一个大小为 的整数数组 ,其中 表示第 个测量事件的结果。
- 该函数被调用恰好一次。