我在SPOJ上运行以下代码时遇到NZEC运行时错误
链接到问题: http://www.spoj.com/problems/CANDY3/
我的代码:
a = int(input())
ans = []
for i in range(a):
ans.append("NO")
for i in range(a):
sum = 0
print()
x = int(input())
f = []
for l in range(x):
f.append(0)
for c in range(x):
f[c] = int(input())
sum = sum + f[c]
if x != 0:
if sum%x == 0:
ans[i] = "YES"
for i in range(a):
print(ans[i])
答案 0 :(得分:0)
来自here...
当您尝试访问阵列的大小超过其大小时,或者对于某些测试用例,您的程序可能无限运行时,基本上会出现nzec错误或运行时错误...
最后,它们可能是代码中的一些逻辑错误,请在代码中尝试极端的测试用例。
因为在spoj中,网站没有正确维护,对于某些问题,我试过我在python和java中得到了但在C和C ++中得到了AC。这种情况发生bcz问题的设定者没有设置正确的时间。这种事情对我来说已经发生了很多。
答案 1 :(得分:0)
始终尝试至少使用给定的示例输入运行代码:
$ python3 candy3.py < test.txt
Traceback (most recent call last):
File "candy3.py", line 9, in <module>
x = int(input())
ValueError: invalid literal for int() with base 10: ''
其中candy3.py
包含您问题中的代码,test.txt
以下示例输入来自SPOJ分配:
$ cat test.txt
2
5
5
2
7
3
8
6
7
11
2
7
3
4
如果它没有在您的计算机上运行示例输入,它很可能不会在SPOJ网站上以其真实输入运行。
扰流:
您不是在每个测试用例之前忽略空白行,而是尝试将此空行转换为数字。
答案 2 :(得分:0)
当我们在线提交代码时,他们会将输入作为文本文件提供。因此输入是一行的。这就是我们在这里收到NZEC错误的原因。
在这里,你可以通过使用 raw_input()。split()而不是在第一行使用 int(input())来完成它