Часто для развлечения ставят перед собой задачу получить определенное число, используя другие данные числа. В данной задаче вам будет даны шесть вводных чисел и одно число в качестве конечной цели.
Например, при вводных шести числах $2$, $3$, $4$, $6$, $7$, $25$ и конечной цели $211$ одним из возможных решений является:
$$211 = (3+6)\times 25 − (4\times7)\div 2$$В этом решении задействованы все шесть чисел. Однако, это не обязательно. Другое решение, которое не использует число $7$, выглядит так:
$$211 = (25−2)\times (6+3) + 4$$Определим очки, присуждаемые за решение, как сумму всех использованных в нем чисел. Очки за приведенные выше решения демонстрационной задачи равны $47$ и $40$, соответственно. Можно показать, что эта задача не имеет решений, дающих меньше $40$ очков.
При использовании чисел должны соблюдаться следующие правила:
- Каждое вводное число может быть использовано не больше одного раза.
- Разрешены только четыре базовые арифметические операции: $+$, $-$, $\times$, $\div$.
- Все промежуточные значения должны быть положительными целыми числами. Таким образом, например, промежуточное выражение $(3\div 2)$ запрещено (даже если конечный результат - целое число).
Приложенный файл number-challenges.txt содержит 200 задач, по одной в каждой строке в следующем формате:
где число до двоеточия - конечная цель, а оставшиеся числа, разделенные запятыми - вводные числа.
Пронумеровав задачи 1, 2, ..., 200, определим $s_n$ как наименьшее число очков, которое может быть присуждено за решение $n$-й задачи. Например, $s_1=40$, так как первой задачей в файле является разобранный пример выше. Отметим, что не у всех задач существует решение. В таких случаях положим, что $s_n=0$.
Найдите $\displaystyle\sum_{n=1}^{200} 3^n s_n$. В качестве ответа приведите остаток от деления полученного результата на $1005075251$.