Untitled
unknown
plain_text
a month ago
1.6 kB
4
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