编程题
三角序列 ### 问题描述 给定 $n$ 组成对的数 $a_{i}, b_{i}$, 每组数表示一个 $a_{i}$ 行 $a_{i}$ 列的如图所示的三角形 ![图片描述](https://doc.shiyanlou.com/courses/uid1357404-20220725-1658685804716/wm) 其中 $b_{i}$ 为 0 时左边较低, 为 1 时右边较低。 将每组数对应的三角按数的顺序从左到右拼接起来。 现给出 $m$ 组询问 $l_{i}, r_{i}, v_{i}$, 对每组询问求最低高度 $h_{i}$ 使得 $l_{i}$ 到 $r_{i}$ 列之间的 高度在 $h_{i}$ 以内的 $\circ$ 的数量大于等于 $v_{i}$ 。 ### 输入格式 输入的第一行包含两个整数 $n, m$, 用一个空格分隔。 接下来 $n$ 行, 每行包含两个整数 $a_{i}, b_{i}$, 用一个空格分隔。 接下来 $m$ 行, 每行包含三个整数 $l_{i}, r_{i}, v_{i}$, 相邻两个整数之间用一个空格分 隔。 ### 输出格式 输出 $m$ 行, 每行包含一个整数 $h_{i}$, 依次表示每次询问对应的答案。如果不 存在这样的 $h_{i}$, 请输出 $-1$ 。 ### 样例输入 ```text 6 6 3 0 4 0 2 1 3 1 5 0 1 1 3 9 12 3 9 13 3 4 4 14 16 7 9 15 12 1 18 42 ``` ### 样例输出 ```text 2 3 3 3 3 -1 ``` 样例说明 第一个询问对应的范围如图所示 ![图片描述](https://doc.shiyanlou.com/courses/uid1357404-20220725-1658685876331/wm) ### 评测用例规模与约定 对于 $30 \\%$ 的评测用例, $1 \leq n, m, a_{i} \leq 500$; 对于 $50 \\%$ 的评测用例, $1 \leq n, m, a_{i} \leq 5000$; 对于所有评测用例, $1 \leq n, m \leq 200000,1 \leq a_{i} \leq 10^{6} , 0 \leq b_{i} \leq 1$, $1 \leq l_{i} \leq r_{i} \leq \sum a_{i}, 1 \leq v_{i} \leq 10^{18}$ 。
查看答案
赣ICP备20007335号-2