CODEFORCES 1744B,如何修复运行时错误



我正在努力解决下一个问题:https://codeforces.com/contest/1744/problem/B当我在终端中运行代码时,它与练习中给出的示例一起工作;但当我在CodeForces中提交它时,它不会,它会导致运行时错误,我无法解决。

def increment(arr, length, option, add):
for i in range(length):
if(option == '0') and (arr[i]%2 == 0):
arr[i] += add
elif(option == '1') and (arr[i]%2 != 0):
arr[i] += add
else:
pass
return arr

def main():
quantityOperation = int(input())
while quantityOperation > 0:
length, times = input().split()
length = int(length)
times = int(times)
arr = [int(x) for x in input().split()]

while times > 0:
opt, add = input().split()
add = int(add)
res = sum(increment(arr, length, opt, add))
print(res)
times -= 1
quantityOperation -= 1

main()

主函数内部的循环不会结束。您应该将quantityOperation -= 1放入while循环中。


然而,修复此问题后,您的代码仍将超过时间限制。正确的想法是预先计算奇数和偶数和,并根据查询进行修改,而不是每次都循环递增函数中的所有元素。你可以在社论中查一下这个问题。

最新更新