F. 平方数划分

    传统题 1000ms 256MiB

平方数划分

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

Description

在数字王国中,存在着这样一个诅咒,如果两个数能够通过相加变成一个平方数,则会引来灾厄。Orange现在管理着一个 nn 个数字构成的集合,为了避免集合中的元素产生灾厄,他需要将其划分成2份子集合,且保证这任意1份子集合内都满足不存在任意2数之和为一个平方数。

你需要告诉Orange是否存在一种划分方案能够满足要求。若存在,请输出任意一种划分方案。

平方数:可以被表示成某个自然数平方形式的数。

Format

Input

输入包含多组测试数据。

第1行为一个整数T,表示测试数据组数。

对于每组测试数据:

第1行为1个整数n,表示集合大小。

第2行为n个整数 aia_i,表示集合中元素。

你应该注意的是,集合中不包含重复元素。

数据范围

对于 20 % 的数据:

1n201 \le n \le 20

对于所有数据:

1T51 \le T \le 5

1n1051 \le n \le 10^5

1ai2×1051 \le a_i \le 2 \times 10^5

Output

对于每个测试数据,若可以满足划分,则输出一行Yes,然后在第2行输出n和m,表示划分的子集1和子集2的大小,并在第3行和第4行分别输出子集合1和子集合2的元素。否则仅输出一行No即可。你只要输出任意一种满足条件的划分均可。

Samples

2
5
1 2 3 4 5
3
6 19 30
Yes
3 2
1 2 4
3 5
No

2026 SYNU 四月周赛 Round II (Div 3) 暨2026蓝桥杯省赛模拟赛

未参加
状态
已结束
规则
OI
题目
6
开始于
2026-4-9 18:20
结束于
2026-4-9 21:20
持续时间
2 小时
主持人
参赛人数
25