Давайте разберемся с этой задачей. Исходный текст состоит из названий девяти городов, и нам известно, что при удалении одного из названий размер сообщения уменьшился на 10 байт. Так как каждый символ в кодировке Windows-1251 занимает 1 байт, это означает, что удаленное название города содержит 10 символов (включая пробел или запятую, если они были рядом).
Исходный текст выглядит следующим образом:
«Я знаю девять городов: Шуя, Руза, Тверь, Москва, Коломна, Кострома, Ярославль, Звенигород, Александров».
Теперь давайте посчитаем количество символов для каждого названия города:
- Шуя – 4 символа
- Руза – 4 символа
- Тверь – 5 символов
- Москва – 6 символов
- Коломна – 7 символов
- Кострома – 8 символов
- Ярославль – 10 символов
- Звенигород – 10 символов
- Александров – 11 символов
Теперь смотрим на города, названия которых при удалении могут дать уменьшение на 10 символов. Мы можем исключить города длина которых меньше 10 символов. Таким образом, возможные варианты – это «Ярославль», «Звенигород» и «Александров».
Теперь, чтобы проверить, какое из этих названий при удалении не оставляет лишних пробелов или запятых, давайте посмотрим:
- Удаление «Ярославль» уменьшит длину на 10 символов. Не будет ли перед ним запятая или лишний пробел?
- Удаление «Звенигород» также уменьшит длину на 10 символов, но тоже нужно проверить на пробелы и запятые.
- Удаление «Александров» уменьшит длину на 11 символов, что нам не подходит.
Так как до появления «Ярославль» следующая запятая уже после «Кострома» является последней, и если бы мы удалили «Ярославль», настоящими пробелами и запятыми не будет ничего лишнего.
Таким образом, с уверенностью можно сказать, что удаленное слово — это «Ярославль».