CF975C Valhalla Siege

题目描述

“无骨者”伊瓦尔是一位伟大的领袖。他正试图从拉格莎手中夺取卡特加特。战争已经打响,伊瓦尔的战士们一波接一波地在战斗中倒下。 伊瓦尔有 $n$ 名战士,他将他们排成一条直线,站在主门前,第 $i$ 名战士紧跟在第 $i-1$ 名战士之后。第一名战士带头进攻。 每名进攻者最多能承受 $a_i$ 支箭,才会倒下,其中 $a_i$ 是第 $i$ 名战士的生命值。 拉格莎命令她的战士在第 $i$ 分钟射出 $k_i$ 支箭,这些箭会一支接一支地射向当前还站着的第一名战士。当伊瓦尔所有的战士都倒下后,剩余的箭会继续飞过。此时,托尔挥动他的锤子,所有伊瓦尔的战士都会恢复到之前的生命值并重新站起来战斗。换句话说,如果所有战士在第 $t$ 分钟倒下,他们会在第 $t$ 分钟结束时全部复活。 战斗将持续 $q$ 分钟,每分钟结束后,你需要告诉伊瓦尔当前还站着的战士数量。

输入格式

第一行包含两个整数 $n$ 和 $q$($1 \leq n, q \leq 200\,000$),分别表示战士的数量和战斗持续的分钟数。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 10^9$),表示每个战士的生命值。 第三行包含 $q$ 个整数 $k_1, k_2, \ldots, k_q$($1 \leq k_i \leq 10^{14}$),第 $i$ 个数表示拉格莎在第 $i$ 分钟下令射出的箭数。

输出格式

输出 $q$ 行,第 $i$ 行表示第 $i$ 分钟结束后还站着的战士数量。

说明/提示

在第一个样例中: - 第 1 分钟后,第 1 和第 2 名战士倒下。 - 第 2 分钟后,所有战士倒下(剩余的箭被浪费),然后他们全部复活,因此答案为 5——所有战士都还活着。 - 第 3 分钟后,第 1 名战士倒下。 - 第 4 分钟后,第 2 名战士受到一次攻击,生命值减少 1。 - 第 5 分钟后,第 2 名战士倒下。 由 ChatGPT 4.1 翻译