CF893D Credit Card
题目描述
最近,Luba 获得了一张信用卡并开始使用它。我们来考虑 Luba 连续使用信用卡的 $n$ 天。
她的账户初始金额为 $0$。
在第 $i$ 天的晚上会发生一笔交易 $a_{i}$。如果 $a_{i} > 0$,则表示向 Luba 的账户存入了 $a_{i}$ 布尔币;如果 $a_{i} < 0$,则从账户中取出 $a_{i}$ 布尔币;如果 $a_{i} = 0$,则会检查一下 Luba 账户上的余额。
在这 $n$ 天的早晨中的任意一天,Luba 都可以去银行存入任意正整数数量的布尔币,但有一个限制:账户中的余额绝不能超过 $d$。
有可能因为某次晚上的交易导致账户余额超过 $d$。如果发生这种情况,答案为「-1」。
Luba 必须保证账户余额不会超过这个上限,并且还要保证在每一天账户被检查(即 $a_{i}=0$ 的那些天)时,账户余额不能为负数。去银行很麻烦,因此 Luba 想知道,为了满足所有要求,她最少需要多少天去银行存钱(如果有可能满足所有要求的话)。请你帮帮她!
输入格式
第一行包含两个整数 $n$ 和 $d$($1 \leq n \leq 10^{5}$,$1 \leq d \leq 10^{9}$),分别表示天数和账户余额上限。
第二行包含 $n$ 个整数 $a_{1}, a_{2}, \ldots, a_{n}$($-10^4 \leq a_{i} \leq 10^4$),其中 $a_{i}$ 表示第 $i$ 天的交易。
输出格式
如果 Luba 无法满足所有要求,请输出 -1。否则请输出她至少需要多少天去银行存钱。
说明/提示
由 ChatGPT 5 翻译