#L5431. 「OOI 2016 Day 1」缆车

    ID: 4721 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>动态规划LIS数据结构预处理与查询

「OOI 2016 Day 1」缆车

5431. 「OOI 2016 Day 1」缆车


题目描述

题目译自 Open Olympiad in Informatics 2016 Day1 T1 「Канатная дорога / Zip-line」。

瓦西亚最近去了一趟森林,决定在树上建造一条缆车。他希望缆车尽可能长,但他对森林中树木高度的记忆有些模糊。幸运的是,他确信自己记得所有树木的高度,除了可能其中一棵有误。

已知森林中有 nn 棵树,按从左到右的顺序编号为 11nn。根据瓦西亚的记忆,第 ii 棵树的高度为 hih_i。一条长度为 kk 的缆车需要依托于 kk (1kn)(1 \leq k \leq n) 棵树,编号为 i1,i2,,iki_1, i_2, \ldots, i_k (i1<i2<<ik)(i_1 < i_2 < \ldots < i_k),且这些树的高度必须是递增的,即 hi1<hi2<<hikh_{i_1} < h_{i_2} < \ldots < h_{i_k}

彼得也去过森林,他对瓦西亚的记忆提出了 mm 个假设。每个假设由一对数字 aia_ibib_i 组成,表示彼得认为编号为 aia_i 的树的高度实际上是 bib_i。需要注意的是,彼得的每个假设是相互独立的。

你的任务是,对于彼得的每个假设,计算在这种情况下可以建造的最长缆车的长度。

注意,在本题中,瓦西亚认为缆车的长度是指其依托的树木数量。


输入格式

第一行包含两个整数 nnmm (1n,m400000)(1 \leq n, m \leq 400000),分别表示森林中树木的数量和彼得的假设数量。

第二行包含 nn 个整数 hih_i (1hi109)(1 \leq h_i \leq 10^{9}),表示瓦西亚记忆中每棵树的高度。

接下来的 mm 行,每行包含两个整数 aia_ibib_i (1ain,1bi109)(1 \leq a_i \leq n, 1 \leq b_i \leq 10^{9}),描述彼得的每个假设。


输出格式

对于彼得的每个假设,在单独的一行中输出一个整数,即在该假设下可以建造的最长缆车的长度。


样例 1

输入

4 4
1 2 3 4
1 1
1 4
4 3
4 5

输出

4
3
3
4

以第一个样例为例:

  • 彼得的第一个假设与瓦西亚的记忆一致。
  • 根据彼得的第二个假设,树木高度为 (4,2,3,4)(4, 2, 3, 4)
  • 根据第三个假设,树木高度为 (1,2,3,3)(1, 2, 3, 3)
  • 根据第四个假设,树木高度为 (1,2,3,5)(1, 2, 3, 5)

样例 2

输入

4 2
1 3 2 6
3 5
2 4

输出

4
3

数据范围与提示

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务 测试点编号 分值 附加限制 备注
1 3323 \sim 32 10 n15n \leq 15m15m \leq 15hi,bi100h_i, b_i \leq 100
2 335133 \sim 51 n500n \leq 500m500m \leq 500hi,bi500h_i, b_i \leq 500
3 527052 \sim 70 20 n2000n \leq 2000m3000m \leq 3000hi,bi100000h_i, b_i \leq 100000
4 718971 \sim 89 n10000n \leq 10000m20000m \leq 20000hi,bi100000h_i, b_i \leq 100000
5 -- n75000n \leq 75000m75000m \leq 75000
6 子任务 6 的测试点独立评分,每个测试点 1 分,且只有在通过前置子任务所有测试点后才会进行评测。