Задача 828
Числовая задача

Часто для развлечения ставят перед собой задачу получить определенное число, используя другие данные числа. В данной задаче вам будет даны шесть вводных чисел и одно число в качестве конечной цели.

Например, при вводных шести числах $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 задач, по одной в каждой строке в следующем формате:

211:2,3,4,6,7,25
,

где число до двоеточия - конечная цель, а оставшиеся числа, разделенные запятыми - вводные числа.

Пронумеровав задачи 1, 2, ..., 200, определим $s_n$ как наименьшее число очков, которое может быть присуждено за решение $n$-й задачи. Например, $s_1=40$, так как первой задачей в файле является разобранный пример выше. Отметим, что не у всех задач существует решение. В таких случаях положим, что $s_n=0$.

Найдите $\displaystyle\sum_{n=1}^{200} 3^n s_n$. В качестве ответа приведите остаток от деления полученного результата на $1005075251$.

Оригинал
 
© Проект Эйлера | Translated problems from ProjectEuler.net