先考虑恰好花费 CCC 元。
若 C=2n+1C=2n+1C=2n+1,最终一定进行了奇数次取负,可得到区间 [−B−n,−B+n][-B-n,-B+n][−B−n,−B+n];若 C=2n>0C=2n>0C=2n>0,可以不用取负得到端点 B−nB-nB−n,或使用正偶数次取负后在剩余预算内增减,合起来得到区间 [B−n,B+n−1][B-n,B+n-1][B−n,B+n−1],而 C=0C=0C=0 时只有 BBB。
花费恰为 kkk 元能得到的数在多花两次取负后仍可得到,所以“不超过 CCC”只需合并恰花 CCC 与 C−1C-1C−1 元的两个区间。分别计算区间长度,再减去交集长度即可。
时间复杂度为 O(1)O(1)O(1),使用 128 位整数处理中间端点与计数。
注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Hydro 通用账户