Счастливые билетики

Рассмотрим бинарную операцию $$$op$$$, которая будет вычислена в последнюю очередь. Тогда все выражение будет равно $$$op(expr_1, expr_2)$$$, где $$$expr_1$$$ — значение выражения слева от операнда, а $$$expr_2$$$ — справа. Таким образом, для каждой строки из цифр $$$s$$$ можно найти множество значений $$$vals[s]$$$, которые могут получиться, если расставить в этой строке операции и скобки. Это может быть либо просто число $$$s$$$, либо $$$op(a, b)$$$, где $$$op$$$ — любая операция, $$$a \in vals[s_1]$$$, $$$b \in vals[s_2]$$$, $$$s = s_1 s_2$$$.

Несложно заметить, что $$$|vals[s]| \le 2 \cdot 10^{len(s)}$$$, потому что для любой операции $$$len(op(a, b)) \le len(a) + len(b)$$$, где $$$len(x)$$$ — количество десятичных цифр в числе $$$x$$$.

Также, заметим, что для строк длины $$$6$$$ не нужно искать всё множество $$$vals$$$, а достаточно только проверить, принадлежит ли ему $$$100$$$. Аналогично, для множеств для строк длины $$$5$$$ не нужно находить множество целиком, достаточно найти только значения, которые при применении операции с числом длины $$$1$$$ могут дать $$$100$$$.

Также, нужно не забыть про операцию отрицания.

Такое решение укладывается в ограничения и находит все решения.