В кодировке Unicode каждый символ кодируется 2 байтами.
Петя написал текст (в нём нет лишних пробелов):
«Лев, Анна, Вадим, Карина, Дмитрий, Григорий, Анастасия — мои знакомые».
Петя удалил из списка одно имя, а также лишние запятую и пробел — два пробела не должны идти подряд.
При этом размер нового предложения в данной кодировке оказался на 112 бит меньше, чем размер исходного предложения. Напишите в ответе удалённое имя.
**Цель:**
Понять, как найти удаленное имя из списка.
**Решение:**
1. Исходный текст, который написал Петя, содержит следующий список имен без лишних пробелов и запятых:
"Лев, Анна, Вадим, Карина, Дмитрий, Григорий, Анастасия — мои знакомые"
2. Давайте проанализируем, как изменения в тексте могли повлиять на размер в кодировке Unicode:
- Исходный текст содержит 7 имен: Лев, Анна, Вадим, Карина, Дмитрий, Григорий, Анастасия.
- Каждое имя в данной кодировке будет соответствовать 2 байтам (16 бит) + 1 байту на символ пробела (8 бит).
- Исходный размер текста с именами и пробелами: 7 имен * (2 байта на имя + 1 байт на пробел) = 21 байт для каждого имени.
- Кроме имен, еще добавляется символы для запятых и дефисов в исходном тексте.
3. После удаления одного имени, одной запятой и пробелов, размер нового предложения уменьшился на 112 бит.
- После удаления, размер текста стал: (7 - 1) * (2 байта + 1 байт) = 6 * 3 байта = 18 байт.
- Разница в размере: 21 байт (исходный) - 18 байт (новый) = 3 байта уменьшилось на каждое имя.
- Таким образом, 112 бит (112 / 8 = 14 байт) уменьшились после удаления одного имени.
4. Найдем удаленное имя:
- Поскольку 112 бит уменьшились при удалении одного имени, это означает, что размер изменения = 3 байта на одно имя.
- Таким образом, размер этого имени был 21 байт (по умолчанию) - 3 байта (изменение) = 18 байт.
- Учитывая, что возвращенный текст содержал 6 имен, тогда общий размер 6 имен = 6 * 3 байта = 18 байт.
- Последовательно удалённое имя равно 18 байт.
5. После расчетов, можно заключить, что **удаленное имя — Анна**.