За прошедший год, состоящий из n месяцев, на планету X каждый месяц совершалась ровно одна кибератака. Произошедшие атаки можно классифицировать следующим образом: атаки типа A осуществлялись при помощи фишинга; атаки типа B осуществлялись при помощи
- Статистика
Условие:
Напиши программу на языке С++ 17, которая решала бы следующую задачу:
За прошедший год, состоящий из n месяцев, на планету X каждый месяц совершалась ровно одна кибератака. Произошедшие атаки можно классифицировать следующим образом:
атаки типа A осуществлялись при помощи фишинга;
атаки типа B осуществлялись при помощи зловредного программного обеспечения;
атаки типа C осуществлялись при помощи прослушивания сетевого трафика.
Президентом планеты X был выбран специальный агент, чтобы предотвратить атаки в этом году. Однако прежде чем приступать к защите, он решил проанализировать, атаки каких типов доставляли много проблем в прошедшем году.
Атака некоторого типа на момент некоторого месяца считается популярной, если с начала года она происходила не реже, чем какая-либо другая атака. Например, если в году было 6 месяцев и атаки происходили в порядке [A,B,C,C,B,C] , то на момент 5-го месяца популярными считаются как атаки типа B, так и атаки типа C (потому что за 5 месяцев произошла одна атака типа A и по две атаки типов B и C).
Неприятностью типа атаки будем считать количество месяцев, в рамках которых данная атака считалась популярной. Так, в случае выше атака A будет иметь неприятность 3 (она неприятна на моментах месяцев 1, 2, 3), атака B будет иметь неприятность 3 (она неприятна на моментах месяцев 2, 3, 5), атака C будет иметь неприятность 4 (она неприятна на моментах месяцев 3, 4, 5, 6).
Определите максимальную неприятность по всем типам атак.
Формат входных данных
Первая строка содержит число n (1<=n<=10^5) — количество месяцев в году на планете X.
Вторая строка содержит символы s1, . . . , sn (si принадлежит A,B,C), где si — тип атаки, произошедшей в i-й месяц.
Формат выходных данных
Выведите одно число — максимальную неприятность по всем типам атак.
ограничение по времени 3 секундs
ограничение памяти 256 МБ
Решение:
Для решения данной задачи на языке C++ 17, мы будем использовать следующие шаги: 1. Прочитаем количество месяцев `n` и последовательность атак. 2. Создадим массив для подсчета количества атак каждого типа (A, B, C). 3. Пройдем по каждому месяцу и будем обновлять количество атак для каждого типа. 4. На каждом шаге будем определять, какие атаки являются популярными, и будем подсчитывать неприятность для каждого типа атак. 5. В конце выведем максимальную неприятность. Теперь давайте напишем программу: ```cpp #include iostream #include vector #include unordered_map #include algorithm int main(...
Похожие задачи
Не нашел нужную задачу?
Воспользуйся поиском
AI помощники
Выбери предмет
- Правоохранительные органы
- Пожарная безопасность
- Парикмахерское искусство
- Природообустройство и водопользование
- Почвоведение
- Приборостроение и оптотехника
- Промышленный маркетинг и менеджмент
- Производственный маркетинг и менеджмент
- Процессы и аппараты
- Программирование
- Право и юриспруденция
- Психология
- Политология
- Педагогика
- Трудовое право
- Теория государства и права (ТГП)
- Таможенное право
- Теория игр
- Теория вероятностей
- Теоретическая механика
- Теория управления
- Технология продовольственных продуктов и товаров
- Технологические машины и оборудование
- Теплоэнергетика и теплотехника
- Туризм
- Товароведение
- Таможенное дело
- Торговое дело
- Теория машин и механизмов
- Транспортные средства