Untitled
unknown
plain_text
9 months ago
1.6 kB
6
Indexable
# solution.py
def solve():
import sys
data = sys.stdin.read().split()
N, M = map(int, data)
# Формируем строку из цифр 1..N: "1234..."
digits_str = ''.join(str(i) for i in range(1, N+1))
results = []
def backtrack(start_idx, current_parts, current_sum):
# Если дошли до конца строки, проверяем сумму
if start_idx == len(digits_str):
if current_sum == M:
# Собираем строку вида "12+34=46"
expr = '+'.join(current_parts) + f'={M}'
results.append(expr)
return
# Перебираем все возможные "блоки" цифр
for i in range(start_idx+1, len(digits_str)+1):
chunk = digits_str[start_idx:i]
val = int(chunk)
current_parts.append(chunk)
backtrack(i, current_parts, current_sum + val)
current_parts.pop()
# Запускаем полный перебор
backtrack(0, [], 0)
# Выводим все найденные решения в строку (или каждое с новой строки)
# По условию примеров каждое решение выводится в своей строке
if results:
print('\n'.join(results))
else:
print() # если нет решений, просто пустая строка
if __name__ == '__main__':
solve()
Editor is loading...
Leave a Comment