CF1912A Accumulator Apex

题目描述

Allyn 正在玩一款名为“Accumulator Apex”的新策略游戏。在这款游戏中,Allyn 会得到一个整数 $x$ 作为初始累加器的值,以及 $k$ 个整数列表。Allyn 可以进行多次操作。在每一次操作中,Allyn 可以从任意一个非空列表中取出最左边的元素,并将其加到累加器 $x$ 上,前提是加完后 $x$ 仍然是非负数。Allyn 可以在任意时刻结束游戏。游戏的目标是让累加器 $x$ 的值尽可能大。请你帮助 Allyn 求出在这款游戏中累加器 $x$ 能获得的最大值。

输入格式

输入的第一行包含两个整数 $x$ 和 $k$($0 \leq x \leq 10^9, 1 \leq k \leq 10^5$),分别表示累加器的初始值和列表的数量。接下来的 $k$ 行描述每个列表:每行以一个整数 $l_i$($l_i \ge 1$)开头,表示该列表的长度,随后在同一行给出该列表的 $l_i$ 个元素,按照从左到右的顺序排列。每个列表中的元素的绝对值不超过 $10^9$,所有列表的总长度不超过 $10^5$。

输出格式

输出一行,表示累加器 $x$ 能获得的最大值。

说明/提示

在第一个输入样例中,我们从 $x = 1$ 开始。然后,我们可以取第一个列表的第一个整数,此时 $x = 0$,再加上第一个列表的下一个整数 $2$,得到 $x = 2$。之后,我们可以加上第二个列表的整数,得到 $x = 3$。最后,我们可以加上第三个列表的整数,得到 $x = 4$。 在第二个输入样例中,我们可以先加上第二个列表的第一个整数,此时 $x = 2$。然后,加上第一个列表的元素,得到 $x = 4$。无法再继续增加 $x$ 的值。 由 ChatGPT 4.1 翻译