编程题
### 问题描述 肖恩最近喜欢上了研究循环节。他给你一个循环节,这个循环节重复无穷多次,构成了肖恩想告诉你的数组。也就是说可能肖恩给你的是 $a_1,a_2,a_3,...,a_n$ ,而他表示的实际数组是 $a_1,a_2,a_3,...,a_n,a_1,a_2,a_3,...,a_n,a_1,a_2...$ 。肖恩可以对这个数组求出对应的前缀和数组,然后给你一个询问 $x$ ,要求你回答肖恩前缀和数组中第一个大于等于 $x$ 的数字的下标。如果不存在一个数字大于等于 $x$ ,那么你需要回答肖恩一个 $-1$ 。 ### 输入描述 第一行包含两个正整数 $n, m$ 分别表示肖恩给出的循环节长度和问题的数量。 第二行包含 $n$ 个整数 $a_1,a_2,…,a_n$ 。表示肖恩给出的循环节。 第三行包含 $m$ 个正整数 $x_1,x_2,…,x_m$ 。表示肖恩提出的 $m$ 个问题。 数据保证 $1 \leq n,m \leq 10^5,−10^9 \leq a_i \leq 10^9,1 \leq x \leq 10^9$ 。 ### 输出描述 每行打印 $m$ 个数字。第 $i$ 个数字是对肖恩第 $i$ 个问题的回答。 ### 样例输入 ``` 3 3 1 -3 4 1 5 2 ``` ### 样例输出 ``` 0 6 2 ``` ### 说明 肖恩给出的数组前九项是 $1,-3,4,1,-3,4,1,-3,4$ ,那么对应的前缀和数组前九项就是 $1,-2,2,3,0,4,5,2,6$ ,第一个大于等于 $1$ 的数字下标是 $0$ ,第一个大于等于 $5$ 的数字下标是 $6$ ,第一个大于等于 $2$ 的数字下标是 $2$ 。
查看答案
赣ICP备20007335号-2