CF1742E.Scuza
普及-
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Timur has a stairway with n steps. The i-th step is ai meters higher than its predecessor. The first step is a1 meters higher than the ground, and the ground starts at 0 meters.
The stairs for the first test case.
Timur has q questions, each denoted by an integer k1,…,kq. For each question ki, you have to print the maximum possible height Timur can achieve by climbing the steps if his legs are of length ki. Timur can only climb the j-th step if his legs are of length at least aj. In other words, ki≥aj for each step j climbed.
Note that you should answer each question independently.
蒂穆尔有一段有 n 级的楼梯。第 i 级台阶比其前一级高 ai 米。第一级台阶比地面高 a1 米,而地面高度为 0 米。
第一个测试用例对应的楼梯示意图。
蒂穆尔有 q 个问题,分别用整数 k1,…,kq 表示。对每个问题 ki,你需要输出:当蒂穆尔的腿长为 ki 时,他通过攀爬台阶所能达到的最大高度。蒂穆尔仅当腿长至少为 aj 时,才能攀爬第 j 级台阶。换言之,对于他所攀爬的每一级台阶 j,都必须满足 ki≥aj。
注意:每个问题需独立作答。
输入格式
The first line contains a single integer t (1≤t≤100) — the number of test cases.
The first line of each test case contains two integers n,q (1≤n,q≤2⋅105) — the number of steps and the number of questions, respectively.
The second line of each test case contains n integers (1≤ai≤109) — the height of the steps.
The third line of each test case contains q integers (0≤ki≤109) — the numbers for each question.
It is guaranteed that the sum of n does not exceed 2⋅105, and the sum of q does not exceed 2⋅105.
第一行包含一个整数 t(1≤t≤100)—— 表示测试用例的数量。
每个测试用例的第一行包含两个整数 n,q(1≤n,q≤2⋅105)—— 分别表示台阶的阶数和问题的数量。
每个测试用例的第二行包含 n 个整数(1≤ai≤109)—— 表示各阶台阶的高度。
每个测试用例的第三行包含 q 个整数(0≤ki≤109)—— 表示每个问题中的数值。
保证所有测试用例中 n 的总和不超过 2⋅105,且所有测试用例中 q 的总和不超过 2⋅105。
输出格式
For each test case, output a single line containing q integers, the answer for each question.
Please note, that the answer for some questions won't fit into 32-bit integer type, so you should use at least 64-bit integer type in your programming language (like long long for C++).
对于每个测试用例,输出一行,包含 q 个整数,分别对应每个问题的答案。
请注意,某些问题的答案无法用 32 位整数类型表示,因此在编程语言中应至少使用 64 位整数类型(例如 C++ 中的 long long)。
输入输出样例
输入#1
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
1 4 4 9 9 0 2 3000000000
说明/提示
Consider the first test case, pictured in the statement.
- If Timur's legs have length 1, then he can only climb stair 1, so the highest he can reach is 1 meter.
- If Timur's legs have length 2 or 4, then he can only climb stairs 1, 2, and 3, so the highest he can reach is 1+2+1=4 meters.
- If Timur's legs have length 9 or 10, then he can climb the whole staircase, so the highest he can reach is 1+2+1+5=9 meters.
In the first question of the second test case, Timur has no legs, so he cannot go up even a single step. :(
考虑题目描述中给出的第一个测试用例。
- 若 Timur 的腿长为 1,则他只能登上第 1 级台阶,因此他能达到的最高高度为 1 米。
- 若 Timur 的腿长为 2 或 4,则他只能登上第 1、2 和 3 级台阶,因此他能达到的最高高度为 1+2+1=4 米。
- 若 Timur 的腿长为 9 或 10,则他可以登上整段楼梯,因此他能达到的最高高度为 1+2+1+5=9 米。
在第二个测试用例的第一个问题中,Timur 没有腿,因此他甚至无法登上一级台阶。:(
输入解题思路,AI测评打分。不知道怎么写?