#P11124. [ROIR 2024 Day 2] 数组划分

[ROIR 2024 Day 2] 数组划分

题目背景

翻译自 ROIR 2024 D2T1

题目描述

给定一个数组 A=[a1,a2,,an]A = [a_1, a_2, \dots, a_n],其中包含 nn 个正整数。

需要将数组元素涂成两种颜色,使得任意两个同一颜色的元素 xxyy 不满足以下条件:

  • x=p×yx=p\times y,其中 pp 是一个素数。

保证存在这样的涂色方案。

输入格式

第一行包含一个整数 nn1n1000001 \leq n \leq 100000),表示数组的元素个数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1061 \leq a_i \leq 10^6),即数组中的元素。

输出格式

输出数组的划分方案。具体地,输出一行 nn 个整数,如果第 ii 个数字为 11,表示第 ii 个元素应涂成第一种颜色;如果为 22,则表示第 ii 个元素应涂成第二种颜色。

如果存在多个合适的划分方案,可以输出其中任何一个。

4
1 2 3 4
2 1 1 2
1
20
1

提示

子任务 分值 特殊性质
00 同样例
11 99 ai2a_i\le2
22 1919 ai=pka_i=p^k,其中 pp 是素数
33 1212 ai3a_i\le3
44 1313 ai4a_i\le4
55 2121 n10n\le10
66 2626

对于 100%100\% 的数据,1n1000001 \leq n \leq 1000001ai1061 \leq a_i \leq 10^6