В первой задаче всё достаточно просто.
1) чтобы понять, насколько мы увеличим сумму чисел, достаточно посчитать сумму до и после преобразования. Так что задач сводится к "максимизировать сумму чисел, меняя в них цифры"
2) Чтобы максимизировать сумму, надо максимизировать слагаемые. Так что нужно как можно сильнее увеличить числа, заменив одну цифру за раз.
3) Как увеличить число как можно сильнее? Нужно заменить старший разряд в числе на девятку, это даст наибольший эффект.
4) Тонкость раз: если старший разряд уже девятка, нам нужен следующий разряд, и т.д. пока не найдём НЕ девятку. Если число из одних девяток, его игнорируем.
5) Тонкость два: если у нас есть числа 12 и 123, то больший эффект будет достигнут увеличением второго, т.к. у него старший разряд больше.
6) Тонкость три: если у нас есть числа 123 и 456, то больший эффект будет достигнут увеличением первого, т.к. у него старший разряд имеет меньшее значение.
Отсюда логика решения: для каждого числа ищем старший разряд, не равный 9. Фиксируем сведения о числе, номере разряда (единицы, десятки, сотни и т.п.), и цифре в разряде.
В списке найденных "кандидатов на замену" убираем все варианты, где номер разряда меньше максимального в списке (т.е. если у кого-то можно заменить сотню, то десятки и единицы уже не рассматриваем). Этот шаг можно совместить с генерацией списка.
Из оставшихся кандидатов ищем того, у кого цифра в разряде наименьшая. Эту цифру в этом числе и заменяем на девятку.
Прирост числа, а значит и прирост общей суммы, будет равен (9 - старая цифра) * вес разряда. Например, заменили в сотнях 2 на 9, получим прирост (9 - 2) * 100 = 700.
Процесс повторяем k раз, прирост накапливаем.