Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Подразделы

Дата и время

05/04/2025 21:24:03

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printЛето 8

printC. Раскраска кубиков

Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (2)

На день рождения Пете подарили коробку кубиков. На каждом кубике написано некоторое целое число. Петя выложил все n своих кубиков в ряд, так что числа на кубиках оказались расположены в некотором порядке a1, a2, , an.
Теперь он хочет раскрасить кубики в разные цвета таким образом, чтобы для каждого цвета последовательность чисел на кубиках этого цвета была строго возрастающей. То есть, если кубики с номерами i1, i2, , ik покрашены в один цвет, то ai1 < ai2 <  < aik.
Петя хочет использовать как можно меньше цветов. Помогите ему!
Первая строка входного файла содержит число n – количество кубиков у Пети (1  n  250000). Затем следует n чисел, разделенных пробелами и/или переводами строки – a1, a2, , an.
На первой строке выходного файла выведите число L – наименьшее количество цветов, которое потребуется Пете. На следующей строке выведите n чисел из диапазона от 1 до L – цвета, в которые Петя должен покрасить кубики.

Пример ввода

5
1 2 4 3 5

Пример вывода

2
1 1 1 2 2
Источник: http://neerc.ifmo.ru/school/archive/
loading