#CF4075. 爬楼梯

爬楼梯

题目描述

光头强有一个有 nn 级台阶的楼梯。地面从 00 米开始,第一步高出地面 a1a_1 米,第 ii 步比前一步高出 aia_i 米。

image

光头强有 qq 次询问,每次询问用整数 k1,,kqk_1,…,k_q 表示。对于每次询问 kik_i,你必须输出光头强的腿长为 kik_i 时,通过爬台阶可以达到的最大可能高度。光头强只能在腿长至少为 aja_j 时爬第 jj 级台阶。换言之,如果要爬第 jj 级,必须有 kiajk_i≥a_j

注意,每个问题视为独立的。

输入格式

第一行包含单个整数 t(1t100)t(1≤t≤100) 代表测试用例数。

每个测试用例的第一行包含两个整数 n,q(1n,q2105)n,q(1≤n,q≤2⋅10^5),分别是阶梯数和询问数。

每个测试用例的第二行包含 nn 个整数 (1ai109)(1≤a_i≤10^9) 代表台阶高度。

每个测试用例的第三行包含 qq 个整数 (0ki109)(0≤k_i≤10^9) 代表每次询问的数字。

保证 nn 的和不超过 21052⋅10^5qq 的和不超过 21052⋅10^5

输出格式

对于每个测试用例,输出一行包含 qq 个整数,即每次询问的答案。

请注意,答案可能不适合 3232 位整数类型,因此您应该在编程语言中至少使用 6464 位整数类型。

测试样例

3
4 5
1 2 1 5
1 2 4 9 10
2 2
1 1
0 1
3 1
1000000000 1000000000 1000000000
1000000000
1 4 4 9 9 
0 2 
3000000000

样例说明

考虑第一个测试用例,如题目描述中所示。

  • 如果光头强的腿长 11 米,那么他只能爬 11 号楼梯,所以他能达到的最高高度是 11 米。
  • 如果光头强的腿长 2244,那么他只能爬 121、233 级楼梯,所以他能达到的最高高度是 1+2+1=41+2+1=4 米。
  • 如果光头强的腿长 991010 米,那么他可以爬上整个楼梯,所以他能达到的最高点是 1+2+1+5=91+2+1+5=9 米。

在第二个测试案例的第一个问题中,光头强腿长为 0,所以他甚至连一步都走不上去 :(