Арифметический дальтонизм ограничение по времени на тест1 секунда
ограничение по памяти на тест256 мегабайт
вводстандартный ввод
выводстандартный вывод
Айбару диагностировали редкую болезнь: "Арифметичекский дальтонизм". Он не отличить арифметические знаки '+'(сложить), '-'(отнять), '*'(умножить) и '/'(делить). Но он все равно является крутым математиком ведь он перебрать у себя в голове все возможные варианты арифметических выражений. Что-бы Айбар не уставал, его близкие друзья Батыр и Данияр решили подарить ему программу когорая будет делать эту работу за него. К сожалению они совсем не умеют программировать, поэтому просят вас о !
Входные данные
Входные данные состоят и выражения в виде x?y=z без кавычек, где 0≤x,y,z≤109.
Выходные данные
В первой строке выведите одно число k - ответ на задачу. Далее выведите каждый из вариантов в отдельной строчке. Варианты можно выводить в произвольном порядке.
Для начала, нам нужно узнать все возможные комбинации знаков ? для данного выражения. Возможных комбинаций всего 4: '+', '-', '*', '/'.
Затем, мы должны перебрать все значения x, y и z в диапазоне от 0 до 109 (включительно) и для каждого вычислить результат выражения x ? y = z с различными комбинациями знаков ?.
Далее, необходимо проверить, выполняется ли равенство для каждого выражения. Если равенство выполняется, то мы записываем данное выражение в список вариантов.
В конце, мы выводим количество вариантов (размер списка) и каждый вариант на отдельной строке.
Пример решения на языке программирования Python:
```python
# Функция, проверяющая выполняется ли равенство x ? y = z для данного знака ?
def check_expression(x, y, z, sign):
if sign == '+':
return x + y == z
elif sign == '-':
return x - y == z
elif sign == '*':
return x * y == z
elif sign == '/':
return x / y == z
# Ввод данных
x, y, z = map(int, input().split())
# Список для хранения вариантов
variants = []
# Перебор всех комбинаций знаков ?
for sign in ['+', '-', '*', '/']:
# Проверка каждого значения из диапазона для x, y и z
for i in range(x + 1):
for j in range(y + 1):
for k in range(z + 1):
# Проверка равенства и добавление варианта в список
if check_expression(i, j, k, sign):
variants.append((i, sign, j, '=', k))
# Вывод количества вариантов
print(len(variants))
# Вывод каждого варианта на отдельной строке
for variant in variants:
print(' '.join(map(str, variant)))
```
Данное решение перебирает все возможные значения для x, y и z, а затем для каждого значения проверяет равенство и добавляет варианты, удовлетворяющие условию, в список. В итоге, выводится количество вариантов и каждый вариант на отдельной строке.
Пожалуйста, обратите внимание, что данный пример представлен на языке программирования Python и предполагает, что данные будут введены с помощью стандартного ввода и вывод добавлен для ясности понимания алгоритма. Для практической реализации данного решения возможно потребуется использовать другой язык программирования и адаптировать код под конкретную платформу или среду разработки.