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