简单Python代码中的运行时错误(NZEC)

时间:2014-07-17 15:36:13

标签: python

我在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])

3 个答案:

答案 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())来完成它