先求一边数组和,然后模拟枚举每个数变换之后的和sum - 2 * arr[i] 进行判断即可。由于数组和可能会很大,记得开long long
给定一个长度为 n 的整数序列 x1,x2,…,xn 和一个上限 L。你可以选择其中恰好一个元素 xi,将其变为它的相反数(即用 −xi 替换 xi)。
设原序列的总和为 S=∑j=1nxj,经过一次替换后,新的总和为 S−2xi。如果这个新总和落在区间 [0,L] 内,则称该选择是合法的。
请你计算有多少种不同的选择(即有多少个下标 i)是合法的。
数据范围:序列长度 n 满足 1≤n≤2×105,上限 L 满足 1≤L≤1010,序列中每个整数的绝对值均不超过 2×105。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.