Четыре задачи о записях и повторах: слова с повторами в словарном порядке, лучший результат каждой команды, самая длинная серия песен, в которой ни одна не звучит дважды, и узор, который считают с помощью позиций.
- Слова в словарном порядке вместе с повторами: всё сделает
multiset<string>. - Для каждой команды храните в двух словарях лучший результат и сколько раз он
был достигнут, а первым выведите
best.size(). Номера команд бывают отрицательными — словарь всё равно отсортирует их правильно. До 2·10⁵ результатов: быстрый ввод-вывод. - Для песен запоминайте, где каждая песня звучала в последний раз. Начало серии сдвигается, только когда прежняя копия находится внутри серии.
- It's Mooin' Time II — самая трудная. Мычание — это
a b b, гдеa ≠ b. Для значенияb, которое встречается хотя бы дважды, берите его две последние копии: тогда любоеa ≠ b, которое встречается раньше предпоследней копии, даёт мычание. Значит, для каждого такогоbпосчитайте различные значения до этой позиции — размер множества по ходу, сохранённый в вектор, — и вычтите единицу, если среди них есть самоb. Ответу нуженlong long.