НУЖНА ВАША ПОМОЩЬ!Наше агентство осуществило перехват нескольких приблизительно шпионских

НУЖНА ВАША ПОМОЩЬ!
Наше агентство выполнило перехват нескольких приблизительно шпионских известий. Однако появились проблемы при декодировании.

Нам удалось выяснить, что:

- каждый символ изначального известья закодировали последовательностью из нулей и единиц;
длина каждой из этих последовательностей одинакова k ;

- каждому символу поставлена в соответствие ровно одна последовательность из k нулей и единиц;
каждой последовательности из k нулей и единиц поставлен в соответствие ровно один символ;

-экземпляры таблицы декодирования испорчены ине подлежат возрожденью.

Большего для вас знать не необходимо.

Для первичного отделения шпионских извещений от извещений, попавших в рассмотрение нечаянно, нам нужна программка, подсчитывающая количество разных знаков, применяемых в известьи, представленном в виде строчки.

Берётесь за эту работу?

Формат входных данных

В первой строке входных данных два целых числа:

1n10^5 - длина строчки;

1kn - длина последовательностей, которыми были закодированы символы.

Во 2-ой строке дано известие в виде строки s .

Гарантируется, что число n кратно k и закодированная строчка s состоит из n знаков, каждый из которых равен 0 либо 1 .

Формат выходных данных

Выведите одно положительное число количество разных символов в строке.

Пример -

Ввод:
9 3
001000100
Вывод:
3

Полагаюсь на вас :) (любой язык программирования)

Задать свой вопрос
1 ответ

C. Пример работы на изображении. (Входные данные отличаются)

using System;

using System.Collections.Generic;

using System.Linq;


namespace NSymbs

   class Program

   

       static void Main(string[] args)

       

           string input;

           input = Console.ReadLine();

           int[] param = input.Split("\t ".ToCharArray()).Select(x =gt; int.Parse(x)).ToArray();

           input = Console.ReadLine();

           int z = input.Length / param[1];

           Listlt;stringgt; bufer = new Listlt;stringgt;();

           for (int i = 0; i lt; z; ++i)

               bufer.Add(input.Substring(i*param[1], param[1]));

           Console.WriteLine(bufer.Distinct().Count());

       

   


Diana Ljatomskaja
Спасибо! Программа образцово работает. Задача будет удалена
Турук Диман
Желая нет, её схоже теснее удалить нельзя. Передаю привет всем тем, кто пишет НТИ. Удачи)
Маргарита Долгих
"идеально работает" По оценке и не скажешь :D
Мирослава Курцикашвили
А как избрать твой ответ наихорошим? Я просто тут в первый раз.
Мержибовский Максим
И да, ты же хорошо знаешь C. У меня еще есть пара интересных задач. Поможешь решить?)
Jurij Klemes
Я оценку в 5 звезд поставил
Тимур Сморчков
Неееет, не умирай
Aleksandra
Обоюдно :D
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт