Вообще говоря, сейчас не практикуется такое ужимание информации, разве что в супер ограниченной памяти, потому такие приемы не актуальны.
Для кодирования каждого символа алфавита нужно 5 бит (32 = 2^5) Т.к. Е и Ё считаются совпадающими, то всего в алфавите 32 символа Поскольку мы знаем, где расставленны прописные буквы, то теоретически их сохранять не обязательно, при выводе их можно подставить автоматически Тогда для хранения имени + отчества + фамилии нужно (15 + 12 + 15) * 5 = 210 бит Для года рождения есть 8 (с 1992 по 1999) вариантов, поэтому для него нужно отвести 3 бита (8 = 2^3) Всего для одной записи требуется 210 + 3 = 213 бит = 26.625 байт ~= 27 байт
И если так дорого место, то я рекомендую дополнительно воспользоваться архиватором типа zip/rar
Держи. На питоне
Объяснение:
n = int(input())
cool_score = 0
jumps = input().split()
sorted_jumps = sorted(jumps)
for i in range(len(jumps)):
if i != len(jumps) - 1:
Ni = jumps.index(sorted_jumps[i]) + 1
Hi = sorted_jumps[i]
if jumps.count(jumps[i]) > 1:
jumps[i] = 'done'
Nj = jumps.index(sorted_jumps[i + 1]) + 1
Hj = sorted_jumps[i + 1]
a = 'abs({} - {}) + {} - {}'.format(int(Ni), int(Nj), int(Hj), int(Hi))
cool_score += eval(a)
print(cool_score)
Для кодирования каждого символа алфавита нужно 5 бит (32 = 2^5)
Т.к. Е и Ё считаются совпадающими, то всего в алфавите 32 символа
Поскольку мы знаем, где расставленны прописные буквы, то теоретически их сохранять не обязательно, при выводе их можно подставить автоматически
Тогда для хранения имени + отчества + фамилии нужно (15 + 12 + 15) * 5 = 210 бит
Для года рождения есть 8 (с 1992 по 1999) вариантов, поэтому для него нужно отвести 3 бита (8 = 2^3)
Всего для одной записи требуется 210 + 3 = 213 бит = 26.625 байт ~= 27 байт
И если так дорого место, то я рекомендую дополнительно воспользоваться архиватором типа zip/rar