#CYF0030. K-th value(series)

K-th value(series)

题目背景

小 C 被一个数列迷住了,他发现这个数列可以分为连续的 N{N} 段,其中第 i{i} 段由 ai{a_i}pi{p_i} 组成。

题目描述

小 C 在想有没有一种快速求出数列中第 K{K} 项的方法,于是他开始不断的尝试计算数列中第 Ki{K_i} 项的值,但是计算量挺大的,现在请同学们通过 C++ 来编写程序帮助小 C 完成任务吧。

输入格式

多行输入。

第一行输入两个正整数 N{N}M{M};代表数列由 N{N} 段组成,需要进行 M{M} 次查询。(1<=N,M<=1031 <= N, M <= {10^3}

接下来 N{N} 行输入两个正整数 ai{a_i}pi{p_i};代表数列的第 i{i} 段由 ai{a_i}pi{p_i} 组成。(1 <= ai{a_i} , pi{p_i}<= 106{10^6}

最后输入 M{M} 个正整数,表示要查询数列中第 Ki{K_i} 项的元素(输入的 Ki{K_i} 可能存在重复)。(1<=Ki<=1091 <= {K_i} <= {10^9})

输出格式

输出有一行。

一行输出 M{M} 个正整数,代表数列的第 Ki{K_i} 个元素。

样例 #1

样例输入 #1

2 3
5 1
3 2
1 4 8

样例输出 #1

1 1 2

样例 #2

样例输入 #2

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

样例输出 #2

2 3 4 5

提示

样例解释】:

对于第一组样例:

数组有 2 个重复段,如下:1 1 1 1 1 2 2 2

进行 3 次查询,数列中第 1 项的值为 1,第 4 项的值为 1,第 8 项的值为 2

对于第二组样例:

数组有 5 个重复段,如下:1 2 3 4 5

进行 4 次查询,数列中第 2 项的值为 2,第 3 项的值为 3,第 4 项的值为 4,第 5 项的值为 5

PS:以上两条样例数据不作为后台测试数据使用。

数据范围】:

对于 100%100\% 的数据:($1 <= N, M <= 10^3,1 <= a_i , p_i <= 10^6,1 <= K_i <= 10^9$)