Четыре задачи, где словарь хранит что-то для каждого ключа: копии слова, копии точки, годы рождения коров с именами и счётчики внутри окна, которое скользит по массиву.
- Подсчёт копий — это
cnt[key]++; на вопрос о слове, которое ни разу не добавляли, нужно напечатать 0, поэтому ищите его черезcountилиfind. - Если ключ — точка, сделайте его
pair<int, int>:cnt[{x, y}]. - «Год Коровы»: один словарь даёт каждому животному его место в 12-летнем цикле
(Ox — 0), другой — год рождения каждой коровы, отсчитанный от года Бесси
(0). «Previous» значит шагать назад год за годом — хотя бы на один шаг, — пока
животное года не совпадёт. Для отрицательного года
yместо животного —(y % 12 + 12) % 12. Выведите расстояние между двумя годами без знака. - В задаче про окно удаляйте ключ, когда его счётчик падает до 0, и печатайте
cnt.size(), как только окно заполнено, —n - k + 1чисел в одной строке.