Вот ещё одна забавная идея как ускорить поиск, и тоже не дающая практического результата.
Как известно для 19-252 по модулю 17# есть всего 64 добавки, идея: а давайте исключим из них те добавки, которые совпадают с однократно загрязнёнными 19-252, они же дают не искомую 19-252, а len=20, чего нам как бы не нужно. А потом исключим и двухкратно загрязнённые, и трёхкратно, и ... И не только по модулю 17# ...
Проверил, составил табличку сколько добавок остаётся (исходно и при загрязнении до 5, уже слишком долго считается, там знаки вопроса):
Наибольший выигрыш получается лишь при 13# и однократном загрязнении, почти втрое.
Разумеется так решения могут быть пропущены (раз в таблице есть нули), но поискать хоть какое-то можно попытаться быстрее полного поиска ...
Остающиеся вопросы:
не вполне понятен смысл нулей в таблице (понятно что вычеркнули слишком много, но вот почему так получилось);
дойдёт ли 19# тоже до нуля при дальнейшем загрязнении или начиная с 19# выходят на плато;
если не дойдёт, то связано ли это с длиной искомой 19-252 (пока не очевидно, может просто совпадение).
На последний вопрос ответ похоже таки "совпадение": проверил 13-192, у него для 13# уменьшается как 32 -> 16 -> 1 -> 0, т.е. доходит до нуля уже при трёхкратном загрязнении.
А 17# даже при пятикратном загрязнении на плато не вышло: 192 -> 175 -> 150 -> 142 -> 133 -> 126.