即使看起来完全一样,Codeforce也不接受我的输出?

时间:2019-04-21 16:16:21

标签: python int

我正在尝试完成关于代码强制的低级问题,但是即使我的解决方案通过了测试,它仍然会注册为错误。它一直说“错误的输出格式文件末尾-预期为int32”。这是什么意思?问题可以在https://codeforces.com/contest/1154/problem/A

找到
#a+b = w
#a+c = x
#b+c = y
#a+b+c = z
def restore_numbers(w,x,y,z):
    biggest = max(w,y,z,x)
    if biggest - w > 0:
        num = biggest-w
    else:
        num = biggest
    if biggest - x > 0:
        num1 = biggest-x
    else:
        num1 = biggest
    if biggest -y > 0:
        num2 = biggest-y
    else:
        num2 = biggest
    if biggest - z > 0:
        num3 = biggest-z
    else:
        num3 = biggest-z
    arr = [num,num1,num2,num3]
    arr.sort()
    arr = arr[0:3]
    s = [str(i) for i in arr]
    res = (" ".join(s))
    return res 
print(restore_numbers(3,6,5,4))

应该发生的事情是我解决了所有测试,但是这没有发生。

1 个答案:

答案 0 :(得分:0)

您的代码将在不同的输入下运行多次,因此您的代码必须适应于能够读取各种输入的情况。为了实现这一点,您必须阅读输入的来源:stdin(标准输入)

在python中,您可以使用input()来读取stdin,然后将这些值传递到restore_numbers(w,x,y,z)

但是,这些数字全部在输入中的一行上(例如3 6 5 4),因此您可以创建一个容纳map的{​​{1}},并从一行中获取输入,使用int使用默认定界符(空格)分隔数字。然后,您将其变成split(),并分别访问每个数字以传递到list函数中。

一种解决方案是:

restore_numbers(w,x,y,z)

现在,代码可以在各种输入上多次运行。