我正在尝试使用以下代码解决问题:
def inmobi(t):
while t:
li = map(int, raw_input().split())
n, ans = li[0], li[1:]
one, two, op = [], [], []
for e in range(n):
for i in range(1, n):
if e + i < n:
one.append(ans[e] + ans[e + i])
two = sorted(one)
print two[n-1] - two[n-2]
t += 1
t = int(raw_input())
inmobi(t)
当我在Ubuntu中使用Linux shell运行时,此代码为我提供了所需的输出。但是,当我尝试使用竞争性编程网站提供的解释器运行此代码时,我收到以下错误:
Traceback (most recent call last):
File "/tmp/editor_trsource_1438181626_447674.py", line 14, in
inmobi(t)
File "/tmp/editor_trsource_1438181626_447674.py", line 3, in inmobi
li = map(int, raw_input().split())
EOFError: EOF when reading a line
我试着阅读其他类似问题的答案,但似乎没有一个问题适合我的情况。
答案 0 :(得分:1)
根据竞争性编程网站的说法,我认为输入的第一行是测试用例的数量(通常就是这种情况)。
您的问题基本符合要求 -
t += 1
在这里,你不断增加t
的值,但你的while条件是while t:
,t
永远不会失败,因此循环永远不会退出,所以基本上while循环是一个无限循环,在输入形成编程竞赛网站后很快就会耗尽,导致您看到的EOFError
。我不知道它在Linux中是如何工作的,但它应该在那里进入无限循环。你应该减少t,而不是增加它。
t -= 1