Timus 1134

Материал из Олимпиадное программирование в УлГТУ
Перейти к навигации Перейти к поиску

Ссылка на задачу

Комментарии

Определим maxCount[i] — максимально возможное количество вхождений в последовательность каждого числа i от 0 до N: maxCount[0] = maxCount[N] = 1, для остальных чисел maxCount[i] = 2.

Подсчитаем count[i] — фактическое количество вхождений каждого числа i в последовательность.

Будем идти от 0 до N и проверять условие count[i] <= maxCount[i]. Если для некоторого i это условие нарушено, ответ NO. Кроме того, если count[i] == maxCount[i], то нужно увеличить count[i + 1].