#include <iostream>
#include <set>
int main()
{
std::set<std::string> Set;
int n, k;
std::cin >> n >> k;
char * s = new char[k + 1];
std::cin.clear();
while (std::cin.get() != '\n'){};
for (auto i = 0; i < n / k; i++)
{
std::cin.get(s, k+1);
Set.insert(s);
}
std::cout << Set.size();
return 0;
}
1. Отметим, что приписывание к двоичному числу двух младших
разрядов предполагает предварительный сдвиг этого числа влево на два разряда
(что равносильно умножению на 2²=4), а затем установку двух младших разрядов в
соответствующие приписываемым битам значения. Следовательно, можно записать,
что 4N+a>43, где a - число, образованное приписываемыми справа битами,
которое не может превышать 11(2)=3(10)
4N+[0..3]≥44, откуда минимальное N=11
Теперь запишем N=11 в двоичной системе и применим к нему
заданный алгоритм.
N=1011(2), число единиц три, нечетное, приписываем 1,
получая 10111.
Теперь число единиц четное, приписываем 0 и получаем
R=101110(2).
В десятичной записи ему соответствует число 46.
<span>Ответ: 46</span>
0.355=3×10в -1 степени+5×10в -2 степени+5×10в -3 степени
-1, -2 и -3 это степени у десяток
Для кодирования использовалась восьмибитная кодировка, значит на один символ приходится 1 байт памяти.
Количество символов равно 256*40*60
Каждый символ равен 1 байту, значит объем текста в байтах равен количеству символов.
Переведём объем в килобайты:
(256*40*60) / 1024 = (2^8*40*60) / 2^10 = 2^(-2)*40*60 = 600 Кбайт
<span>P.S.: Сильно хотел написать ответ во¬т т¬ак, чт¬о б¬ы н¬ел¬ьз¬я б¬ыл¬о п¬ро¬чи¬тат¬ь, но Alviko не оценит:(</span>