На вход подаётся содержимое некоторого пакета данных — строка в формате base85. Пакет состоит из заголовка и тела. Заголовок содержит последовательность ненулевых байтов, заканчивающуюся нулевым. Каждый байт заголовка — число 1, -1, 2, -2, 4, -4, 8 или -8 (других нет). Модуль этого числа описывает количество байтов в очередном поле записи. Тело состоит из нуля или более записей, определяемых в заголовке. Если число отрицательное, соответствующее поле — целое со знаком, если положительное — беззнаковое. Выравнивания между полями и между записями нет. Порядок байтов — «сетевой» (big endian). Вывести сумму всех полей пакета.
1pod3sdqp1V;v|??MM2idn8p=)rm(+um
5599084740
Разбор:
- В шестнадцатеричном представлении пакет выглядит так:
04 ff fe 00 a9 77 3f f5 63 1d 28 4e ed 47 fa a6 7b 24 55 55 d5 89 47 4a b0
04 ff fe 00 — это заголовок, 4, -1, -2. Размер записи — 7: беззнаковое целое, знаковый байт, знаковое полуслово
- Всего записей три:
0xa9773ff5 0x63 0x1d28 0x4eed47fa -0x5a 0x7b24 0x5555d589 0x47 0x4ab0