Это простая версия задачи. Задачи отличаются друг от друга, но простая версия почти является подзадачей сложной версии. Обратите внимание на то, что ограничения и формат вывода различаются.
Дана строка \(s\), состоящая из \(n\) строчных латинских букв.
Вам нужно раскрасить все её символы в один из двух цветов (каждый символ покрашен ровно в один цвет, одинаковые буквы могут быть покрашены как одним цветом, так и разными, т.е. вам нужно выбрать ровно один цвет для каждого индекса в \(s\)).
После покраски вы можете поменять местами два любых соседних символа строки, которые раскрашены в разные цвета. Вы можете применить эту операцию произвольное (возможно, нулевое) количество раз.
Цель — сделать строку отсортированной, т.е. все символы должны быть расположены в алфавитном порядке.
Ваша задача — определить, возможно ли покрасить заданную строку так, что после покраски она может быть отсортирована с помощью какой-либо последовательности шагов. Обратите внимание: вам нужно восстановить только раскраску, но не последовательность шагов.
Выходные данные
Если невозможно раскрасить заданную строку так, что после покраски она может быть отсортирована после какой-либо последовательности шагов, выведите «NO» (без кавычек) первой строкой.
В противном случае выведите «YES» первой строкой и любую корректную раскраску второй строкой (раскраской считается строка, состоящая из \(n\) символов, где \(i\)-й символ должен быть '0', если \(i\)-й символ покрашен в первый цвет и '1' иначе).