Python: ПОМОГИТЕ получить ошибку времени выполнения (NZEC)

Поэтому я решил заняться соревновательным программированием на CodeChef. Я видел проблему, чтобы попытаться. Но я продолжаю получать ошибку времени выполнения (NZEC), и я не знаю, почему, поскольку я думал, что эта ошибка возникает только тогда, когда я вызываю элементы связанного массива и бесконечные циклы, которые занимают слишком много памяти.

Задача
1.) Получить 2 входа A и B
2.) Границы: 1 ≤ B ‹ A ≤ 10000
3.) Затем я делаю A-B и изменить одну цифру ответа
4.) Затем я возвращаю его

Примечание. Ограничение по времени составляет 1 секунду, максимальный размер исходного кода 50 000 байт.

e.g

input A >> 95
input B >> 50

output >> 35

Фактический ответ 45, но мы должны изменить одну цифру ответа

Так что это было мое решение

from random import randint

test1 = True
test2 = True

while test1:
    A = int(input("Enter a number: "))
    if (A>=1) and (A<=10000):
        test1 = False
    else:
        print("Number must be greater or equal to 1 and less than or equalts to 10,000")


while test2:
    B = int(input("Enter a second number: "))
    if (B>=1) and (B<=10000) and (B<A):
        test2 = False
    else:
        print("Number must follow rules as above BUT must be less than your first")

solution = str(A-B)
range1 = randint(0, len(solution)-1)
range2 = randint(0,9)
replacement = list(range(0,10))

new_solution = solution.replace(solution[range1], str(replacement[range2]))
print(new_solution)

person Community    schedule 27.12.2016    source источник


Ответы (1)


«NZEC» не является конкретной ошибкой, которую мы можем легко определить и указать ее причину. Это просто означает «Ненулевой код выхода». Это может означать, что где-то в вашем коде произошла ошибка, или просто выполнение кода заняло слишком много времени (эти онлайн-судьи обычно имеют строгие ограничения по времени выполнения).

Одна из возможных причин заключается в том, что онлайн-судья пытался выполнить ваш код со строковыми входными данными, из-за чего ваши вызовы int(input(..)) вызвали ValueError, который ваш код не уловил.

person DeepSpace    schedule 27.12.2016
comment
Я посмотрел на другие ответы. Они даже не включали код для тестирования, если пользователь соблюдает границы. Так что определенно тестирование строковых входов не является проблемой, возможно, ограничение времени выполнения, но я не уверен. - person ; 27.12.2016