Задача 758
Ведра воды

Имеются 3 ведра, обозначенные как $S$ (small, маленькое) объемом 3 литра, $M$ (medium, среднее) объемом 5 литров и $L$ (large, большое) объемом 8 литров.
Изначально $S$ и $M$ полностью заполнены водой, а $L$ пусто. Переливая воду между ведрами, можно отмерить ровно один литр воды.
Поскольку другого способа отмерить воду нет, то после начала переливания процесс завершается только когда опустеет ведро, из которого выливают воду, либо полностью заполнится ведро, в которое наливают воду.
Для получения одного литра потребуется не менее четырех переливаний:

$(3,5,0) \xrightarrow{M\to L} (3,0,5) \xrightarrow{S\to M} (0,3,5) \xrightarrow{L\to S} (3,3,2) \xrightarrow{S\to M} (1, 5, 2)$

После данных действий в ведре $S$ будет ровно один литр.

В общем случае размеры ведер $S, M, L$ составляют $a$, $b$, $a + b$ литров соответственно. Изначально $S$ и $M$ полностью наполнены водой, а $L$ пусто. Если вышеуказанное правило переливания будет соблюдаться, а $a$ и $b$ будут парой взаимно простых натуральных чисел таких, что $a \leq b$, то тогда всегда возможно отмерить один литр за конечное число шагов.

Пусть $P(a, b)$ — минимальное число переливаний, которое потребуется для получения одного литра. Тогда $P(3,5)=4$.
Также $P(7, 31)=20$ и $P(1234, 4321)=2780$.

Найдите сумму всех $P(2^{p^5}-1, 2^{q^5}-1)$ для всех пар простых чисел $p, q$ таких, что $p < q < 1000$.
В качестве ответа приведите остаток от деления полученного результата на $1\,000\,000\,007$.

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