Codeforces не принимает мой вывод, даже если он выглядит точно так же? - PullRequest
1 голос
/ 21 апреля 2019

Я пытаюсь завершить вопрос низкого уровня о кодовых силах, но, хотя мое решение проходит тесты, оно все равно регистрируется как ошибка.Он продолжает говорить, что «неправильный формат вывода. Неожиданный конец файла - ожидается 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 голосов
/ 13 мая 2019

Ваш код будет запускаться несколько раз под разными входами, поэтому ваш код должен адаптироваться, чтобы можно было читать различные входы.Чтобы достичь этого, вы должны прочитать, откуда поступает ввод: stdin (стандартный ввод)

В Python вы можете использовать input() для чтения из stdin и затем передать эти значенияв ваш restore_numbers(w,x,y,z)

Однако все эти числа находятся на одной строке на входе (например, 3 6 5 4), так что вы можете создать map, который содержит int и получить входные данные из одной строкии используйте split() для разделения чисел, используя разделитель по умолчанию (пробел).Затем вы передаете его в list и получаете доступ к каждому номеру индивидуально для перехода в функцию restore_numbers(w,x,y,z).

Одним из решений будет:

#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
nums = list(map(int, input().split()))
print(restore_numbers(nums[0],nums[1],nums[2],nums[3]))

Теперь код можно запуститьнесколько раз на разных входах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...