Если они отсортированы (и, как указал Хеннинг, ab = c - это то же самое, что a = b + c), вы можете начать с наименьшего b и c и добавить их, что должно привести к наименьшему a,Теперь, увеличивая b или c, a может только увеличиваться, так что вам не нужно оглядываться назад.
Если вы составите таблицу b и c и их суммы (которая должна быть одной из a):
c\ b:-12 3 4 5 7 10 15 16
-12: -24, -19, -9, -7, -3, -2, 3, 4
-7: -9, -4, 6, 8, 12, 13, 18,
3: -8, -3, 7, 9, 13, 14, 19,
5: -7, -2, 8, 10, 14, 15,
9: -5, 0, 10, 12, 16,
10: -2, 3, 13, 15,
15: 3, 8, 18,
16: 4, 9, 19,
вы увидите, что я опустил значения в правом нижнем углу,поскольку предыдущее значение (слева) уже превысило максимум a (15), поэтому более высокое значение не может совпадать.
Конечно, для такого небольшого числа уравнений вы тратите гораздо больше времени на размышления об оптимизации, чем на отсутствие лишних вычислений.Для гораздо больших наборов значений может быть полезно оптимизировать.