Предмет: Информатика,
автор: Wolf14a
Наше агентство осуществило перехват нескольких предположительно шпионских сообщений. Однако возникли проблемы при декодировании.Нам удалось узнать, что:- каждый символ изначального сообщения закодировали последовательностью из нулей и единиц;длина каждой из этих последовательностей равна k ;- каждому символу поставлена в соответствие ровно одна последовательность из k нулей и единиц;каждой последовательности из k нулей и единиц поставлен в соответствие ровно один символ;-экземпляры таблицы декодирования испорчены ине подлежат восстановлению.Большего вам знать не нужно.Для первичного отделения шпионских сообщений от сообщений, попавших в рассмотрение случайно, нам нужна программа, подсчитывающая количество различных символов, используемых в сообщении, представленном в виде строки.Берётесь за эту работу?Формат входных данныхВ первой строке входных данных два целых числа:1≤n≤10^5 - длина строки;1≤k≤n - длина последовательностей, которыми были закодированы символы.Во второй строке дано сообщение в виде строки s .Гарантируется, что число n кратно k и закодированная строка s состоит из n символов, каждый из которых равен 0 или 1 .Формат выходных данныхВыведите одно положительное число – количество различных символов в строке.Пример -Ввод:9 3001000100Вывод:3
язык C++
Ответы
Автор ответа:
0
#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;
}
Похожие вопросы
Предмет: Беларуская мова,
автор: ilyakondratenko0309
Предмет: Математика,
автор: iloveyouuuuuuu
Предмет: Физика,
автор: timosuksereza7
Предмет: Математика,
автор: Nastyushka2301
Предмет: История,
автор: NikolasOBEY