IndexError: индекс списка вне допустимого диапазона в представлении Topcoder

Когда я запустил свой код в проблеме Topcoder, это показало, что есть ошибка: IndexError: list index out of range. Однако код отлично работал на Python IDLE. Может ли кто-нибудь сказать мне, где не так?

Информация о проблеме:

Класс определения:

Метод нарезки сыра: общая площадь

Параметры: целое, целое, целое, целое

Возвращает: целочисленный метод

подпись: def totalArea(self, A, B, C, S):

Примеры

0) 1 3 3 2

Возвращает: 0

Одно из измерений этого блока равно 1. Независимо от того, как мы его разрезаем, каждый кусок будет иметь одно измерение, равное 1. Так как S=2, это означает, что сделать хороший срез невозможно. Следовательно, максимальная общая площадь хороших срезов равна 0.

import sys
total=0
data=sys.stdin.read().split()
x,y,z,s=int(data[0]),int(data[1]),int(data[2]),int(data[3])

if min(x,y,z)==s:
    print x*y*z/s

elif min(x,y,z)<s:
    print 0

elif max(x,y,z)>s:
    lines=[x,y,z]
    while max(lines)>=2*s:
        area=1
        maxline=max(lines)
        lines.pop(lines.index(maxline))

        for line in lines:
            area=area*line
        total+=area
        lines.append(maxline-s)
    area=1
    minline=min(lines)
    lines.pop(lines.index(minline))
    for line in lines:
        area=area*line
    total+=area
    print total

person Hang Lin    schedule 06.05.2017    source источник
comment
Я не знаю, как этот код мог прекрасно работать в вашем IDLE. Функция split() вернет список с одним элементом.   -  person R. Gadeev    schedule 06.05.2017
comment
Есть шанс, что у Topcoder возникнут проблемы с проверочными тестами по этой проблеме.   -  person stefan.stt    schedule 06.05.2017
comment
Например, ввод будет «5 5 5 2», а функция split() вернет ['5', '5', '5', '2'].   -  person Hang Lin    schedule 06.05.2017


Ответы (1)


Вы получаете ошибку индекса, потому что ваш data пуст из-за неожиданного EOF во входных данных теста, предоставленных topcoder. Вы можете попробовать реализовать свой код для обработки исключений EOF между входными данными.

person Anmol Gautam    schedule 06.05.2017
comment
вы можете реализовать обработку исключений при вводе данных - person Anmol Gautam; 06.05.2017