Чтобы найти удалённое название гриба, давайте сначала проанализируем исходный текст и его размер. В Unicode каждый символ занимает 2 байта, так как кодируется 16 битами.
Исходный текст: «Подосиновик, белый, масленок, рыжик, опята, козляк, шампиньон, груздь — виды грибов».
Посчитаем количество символов в этом тексте, включая пробелы и знаки препинания:
- Подосиновик — 12
- , — 1
- пробел — 1
- белый — 6
- , — 1
- пробел — 1
- масленок — 9
- , — 1
- пробел — 1
- рыжик — 6
- , — 1
- пробел — 1
- опята — 6
- , — 1
- пробел — 1
- козляк — 6
- , — 1
- пробел — 1
- шампиньон — 11
- , — 1
- пробел — 1
- груздь — 6
- — — 2
- пробел — 1
- виды — 4
- пробел — 1
- грибов — 6
- . — 1
Теперь подсчитаем общее количество символов: 12 + 1 + 1 + 6 + 1 + 1 + 9 + 1 + 1 + 6 + 1 + 1 + 6 + 1 + 1 + 6 + 1 + 1 + 11 + 1 + 1 + 6 + 2 + 1 + 4 + 1 + 6 + 1 = 87 символов.
Исходный размер текста в байтах: 87 символов * 2 байта = 174 байта.
После удаления одного слова и лишней запятой и пробела новый размер стал на 20 байт меньше: 174 байта - 20 байт = 154 байта.
Теперь давайте определим, сколько символов остается после удаления: 154 байта / 2 байта за символ = 77 символов.
Теперь нам нужно выяснить, какое название гриба мог убрать ученик. У нас есть следующие варианты грибов в списке:
- Подосиновик
- белый
- масленок
- рыжик
- опята
- козляк
- шампиньон
- груздь
Если мы удалим слово «шампиньон», которое состоит из 11 символов, то оставшееся количество символов будет: 87 - 11 - 1 (удалённая запятая или пробел) = 75 символов, что не соответствует 77 (так как на 20 байт меньше). А если удалить, например, слово «масленок» (9 символов): 87 - 9 - 1 = 77 символов. Это то, что нам нужно!
Таким образом, удалённое слово — масленок.