Задача 1.
Задана строка S. Требуется вычислить количество различных строк, которые можно получить из заданной путем обмена двух символов, стоящих на различных позициях.
Input.txt: abacaba Output.txt: 15
Задача 2.
Даны две строки A и B равной длины, состоящие из строчных английских букв. Требуется из второй строки получить первую, выполнив два следующих действия: 1) К строке B применяется шифр Цезаря, то есть все буквы циклически сдвигаются на фиксированный шаг D назад. Например, при D = 3, буква «g» превращается в «d», а «b» – в «y». 2) Первые K символов строки B перемещаются в конец строки, что соответствует её циклическому сдвигу на K позиций влево.
Требуется определить значения K и D, необходимые для решения данной задачи.
Input.txt: 3 abc fde Output.txt: Success 1 3
Input.txt: 3 cbc cbd Output.txt: Impossible
Input.txt: 1 y b Output.txt: Success 0 3
1я $$$\sum_i i - cnt_{c_i} $$$, $$$cnt_{с}$$$ = количество символов c на текущий момент
Например, babab Сумма = (1 — 1) + (2 — 1) + (3 — 2) + (4 — 2) + (5 — 3) = 7 Правильный ответ: 10
если в парах (i, j) j>i, нумерация с 0 (т.к. первая буква = 0 пар), то для babab:
какие ещё 4 пропущены?
для abacaba кстати 14 получилось. Я считал что можно 1 раз менять, можно сколько угодно? Тогда если исходную посчитать будет 15, но в babab 10 не выходит всё равно
Спасибо. Правильно понимаю? Например: abcde индексация: 0 1 2 3 4 Тогда: для a = 0 — 0, для b = 1 — 0, для c = 2 — 0, для d = 3 — 0, для e = 4 — 0 Итого: 10 + 1(исходная) = 11
Например: abacaba индексация: 0 1 2 3 4 5 6 Тогда: для a = 0 — 0, для b = 1 — 0, для a = 2 — 1, для c = 3 — 0, для a = 4 — 2, для b = 5 — 1, для a = 6 — 3 Итого: 14 + 1(исходная) = 15
Нужно нормальное условие задачи, если нужно сделать ровно 1 замену, то исходную строку можно получить если поменять 2 одинаковые буквы. Если все разные то после 1й замены будут разные строки, их как раз sum(0..n — 1). Если есть дубли, то просто вычитаем их
ты крутой оч