CF2107A.LRC and VIP

入门

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给你一个长为 nn 的数组 a=(a1,a2,⋯ ,an)a=(a_1,a_2,\cdots,a_n)。

你需要把它分成两个子序列 BB 和 CC,使得:

  • aa 中的每个元素都属于两个子序列中的一个。
  • 两个子序列都至少包含一个元素。
  • 两个子序列的最大公因数不相等。

请判断是否有解,如果有解,请给出方案。

最大公因数的定义——维基百科

输入格式

多组数据,第一行一个整数,为数据组数 t(1≤t≤500)t(1\le t\le 500)。

对于每组数据:第一行一个整数,表示 n(2≤n≤100)n(2\le n\le 100)。

第二行 nn 个整数 a1,a2,⋯an(1≤ai≤104)a_1,a_2,\cdots a_n(1\le a_i\le 10^4)。

输出格式

对于每组数据,如果有解,第一行输出 Yes,否则第一行输出 No。大小写不敏感。

如果有解,你需要输出第二行表示一种方案,为空格隔开的 nn 个数字,第 ii 个数字为 11 表示 aia_i 被划分到 BB 中,为 22 则表示 aia_i 被划分到 CC 中。你需要保证 11 和 22 都至少出现一次。

如果有多种合法方案,输出任意一种均可。

输入输出样例

  • 输入#1

    3
    4
    1 20 51 9
    4
    5 5 5 5
    3
    1 2 2

    输出#1

    Yes
    2 2 1 1
    No
    Yes
    1 2 2

说明/提示

第一组数据的输出中,B=(51,9),C=(1,20)B=(51,9),C=(1,20)。gcd⁡(B1,B2)=3≠1=gcd⁡(C1,C2)\gcd(B_1,B_2)=3\ne1=\gcd(C_1,C_2)。

对于第二组数据,没有合法的方案。存在方案 B=(5,5,5),C=(5)B=(5,5,5),C=(5),但是 gcd⁡(B1,B2,B3)=5=gcd⁡(C1)\gcd(B_1,B_2,B_3)=5=\gcd(C_1),所以此方案非法。

By chenxi2009

输入解题思路,AI测评打分。不知道怎么写?

首页