CF1583A.Windblume Ode

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Windblume Ode

题目描述

一把装饰着无名花朵的弓,承载着同样无名之人的真挚期望。

你获得了名为 Windblume Ode 的优雅弓。武器上刻有一个包含 nn 个(n3n \ge 3)正整数的数组(即所有数互不相同,不允许有重复)。

请你找出该数组的一个元素数量最多的子集,使得其所有元素之和是一个合数。一个正整数 xx 被称为合数,如果存在正整数 yy,满足 1<y<x1 < y < xxx 能被 yy 整除。

如果存在多个满足条件的最大子集,你可以输出其中任意一个。可以保证在题目给定的约束下,总能找到一个非空的满足条件的子集。

输入格式

每组测试数据包含多个测试用例。第一行包含测试用例的数量 tt1t1001 \le t \le 100)。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn3n1003 \leq n \leq 100),表示数组的长度。

第二行包含 nn 个互不相同的正整数 a1,a2,,ana_{1},a_{2},\dots,a_{n}1ai2001 \leq a_{i} \leq 200),表示数组中的元素。

输出格式

每个测试用例输出两行。

第一行输出一个整数 xx,表示所选子集的最大元素数量。第二行输出 xx 个用空格分隔的整数,表示所选子集在原数组中的下标。

说明/提示

在第一个测试用例中,子集 {a2,a1}\{a_2, a_1\} 的和为 99,这是一个合数。唯一的大小为 33 的子集的和为 1111,是质数。注意你也可以选择子集 {a1,a3}\{a_1, a_3\},其和为 8+2=108 + 2 = 10,同样是合数,因为它能被 22 整除。

在第二个测试用例中,所有元素的和为 2121,这是一个合数。因此我们可以直接选择整个数组作为子集。

由 ChatGPT 4.1 翻译

样例

4
3
8 1 2
4
6 9 4 2
9
1 2 3 4 5 6 7 8 9
3
200 199 198
2
2 1
4
2 1 4 3
9
6 9 1 2 3 4 5 7 8
3
1 2 3 

在线编程 IDE

建议全屏模式获得最佳体验