Олимпиадный тренинг

Задача . B. Две кучки


У Валеры имеется n кубиков, на каждом из которых записано целое число от 10 до 99. Он произвольным образом выбирает n кубиков и откладывает в первую кучку. Оставшиеся кубики образуют вторую кучку.

Валера решил поиграть с кубиками. Для этого он достает кубик из первой кучки и записывает число, изображенное на нем. Затем он достает кубик из второй кучки и дописывает к имеющимся двум цифрам справа двузначное число, изображенное на этом кубике. В итоге у Валеры получается четырехзначное число, первые две цифры которого записаны на кубике из первой кучки, а вторые две — на кубике из второй кучки.

Валера увлекается арифметикой, поэтому он с легкостью посчитал количество различных четырехзначных чисел, которые можно получить в его забавной игре. Другой вопрос, а как разделить кубики на кучки так, чтобы можно было получить как можно больше различных четырехзначных чисел. Этого Валера не знает, поэтому хочет спросить у вас.

Входные данные

В первой строке задано целое число n (1 ≤ n ≤ 100). Во второй строке через пробел заданы n целых чисел ai (10 ≤ ai ≤ 99), обозначающих числа, изображенные на кубиках.

Выходные данные

В первой строке выведите целое число — максимально возможное количество различных четырехзначных чисел, которое может получить Валера. Во второй строке выведите n целых чисел bi (1 ≤ bi ≤ 2), число bi обозначает номер кучки в которую Валера должен отнести i-ый кубик.

Если существует несколько вариантов разбиения кубиков на кучки, дающих максимально возможное количество различных четырехзначных чисел, которое может получить Валера, выведите любой из них.

Примечание

В первом примере Валера может отложить первый кубик в первую кучку, а второй — во вторую. В этом случае он сможет получить число 1099. Если же он поместит в первую кучку второй кубик, а во вторую — первый, то он сможет получить число 9910. В обоих случаях максимальное количество различных чисел равно единице.

Во втором тестовом примере Валера сможет получить числа 1313, 1345, 2413, 2445. Обратите внимание, что если бы Валера отложил в первую кучку первый и третий кубики, то он смог бы получить лишь два числа 1324 и 1345.


Примеры
Входные данныеВыходные данные
1 1
10 99
1
2 1
2 2
13 24 13 45
4
1 2 2 1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя