Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Разбиение массива

(Время: 3 сек. Память: 32 Мб Сложность: 43%)

Дан массив A = [a1, a2, ..., an], содержащий n натуральных чисел.

Требуется раскрасить элементы массива в два цвета таким образом, чтобы не существовало двух элементов x и y одного цвета, таких, что x нацело делился на y и выполнялось равенство x/y = p, где p – простое число. Гарантируется, что такая раскраска существует.

Напомним, что целое число p > 1 называется простым, если оно имеет ровно два делителя: 1 и p.

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

Первая строка входного файла INPUT.TXT содержит одно целое число n (1 ≤ n ≤ 100 000) – количество элементов в массиве.

Вторая строка содержит n целых чисел a1, a2, ..., an (1 ≤ ai ≤ 106) – элементы массива.

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

В выходной файл OUTPUT.TXT выведите описание разбиения массива на два множества в следующем формате.

Выведите n целых чисел, i-е из которых равняется 1, если элемент ai надо раскрасить в первый цвет, и 2, если элемент ai надо раскрасить во второй цвет.

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

Примеры

INPUT.TXTOUTPUT.TXT
14
1 2 3 4
2 1 1 2
21
20
1

Замечание

В первом примере есть два элемента первого цвета: 2 и 3, и два элемента второго цвета: 1 и 4. Элементы первого цвета не делятся нацело друг на друга. 4 нацело делится на 1, но их отношение не является простым числом.


Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2006 / 2007
 2007 / 2008
 2008 / 2009
 2009 / 2010
 2010 / 2011
 2011 / 2012
 2012 / 2013
 2013 / 2014
 2014 / 2015
 2015 / 2016
 2016 / 2017
 2017 / 2018
 2018 / 2019
 2019 / 2020
 2020 / 2021
 2021 / 2022
 2022 / 2023
 2023 / 2024
 A. Посадка в самолет
 B. Битоническая последовательность
 C. Игра с таблицей
 D. Выбор столицы
 E. Разбиение массива
 F. Бактерии
 G. Разбиение на тройки
 H. Обходы бинарного дерева

Красноярский краевой Дворец пионеров, (c)2006 - 2024, ИНН 246305493507, E-mail: admin@acmp.ru