Untitled

 avatar
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