Задача А — решение
Пройдемся по строке c, если c[i]=='V', то добавим в начало строки a b[i], иначе добавим в конец строки a b[i].
Код решения
// Вставь сюда свой код
Задача Б — решение
Заметим, что x+y=n, y = x*10^k. Тогда x + x*10^k = n => x(1+10^k) = n => x = n/(1+10^k). Если n делится на (1+10^k), добавляем x в массив, иначе нет. Перебираем k от 1 до 18.
Код решения (пустой)
// Вставь сюда свой код
Задача С1 — решение
Чтобы минимизировать количество сделок, берём как можно большую степень числа 3, которая не превышает n. Троичная репрезентация числа n даёт все ответы. Для каждой позиции добавляем значение к ответу по формуле. Если позиция/степень 0, сравниваем bas-1 => bas, чтобы избежать отрицательных значений.
Код решения (пустой)
// Вставь сюда свой код
Задача С2 — решение
Всегда выгоднее брать 3^x-1 * 3, чем 3^x. Создаём массив cnt с троичной репрезентацией числа n. Допустим, n=10, a = [1,0,1] — количество сделок для каждой степени. Отнимаем минимальное количество сделок от k. Далее «расщепляем» числа до тех пор, пока общее количество не превышает k. Жадно начинаем с самой большой сделки (3^mx).
Код решения (пустой)
// Вставь сюда свой код
Задача Д — решение
Находим к-тую цифру и число с этой цифрой: Разделяем числа на блоки: 9,90,900,9000…. Считаем группы, находим нужную группу, затем число и цифру в ней. Для суммы цифр от 1 до N используем рекурсию с разрядами:
x— префиксy— текущая цифраz— суффикс
Финальная формула: x*F(10^(log10(n))) + (x*(x-1)/2)*p + x*(z+1) Используем ДП для быстрых сумм: a[0]=0; a[1]=45; a[i]=a[i-1]*10 + ceil(pow(10,i-1))*45
Код решения (пустой)
// Вставь сюда свой код
Задача Е — решение
Используем тернарный поиск для максимизации суммы префиксов:
l = z - y,r = x- Находим
m1иm2, обновляем границы - Берём максимум среди
l <= k <= r
Код решения (пустой)
// Вставь сюда свой код



