#P16582. [Euc2024]Make Triangle
[Euc2024]Make Triangle
题目描述
给定 个正整数 ,以及三个正整数 ,满足
你需要把这 个数划分为三个组,使得:
- 第一组恰好包含 个数;
- 第二组恰好包含 个数;
- 第三组恰好包含 个数;
- 设三组元素之和分别为 ,则 能够作为一个面积为正的三角形的三条边。
请判断是否存在这样的划分。若存在,请构造任意一种。
输入格式
每个输入包含多组测试数据。
第一行包含一个整数 (),表示测试数据组数。
每组测试数据:
- 第一行包含四个整数 ,其中
且 ;
- 第二行包含 个整数 ()。
保证所有测试数据中 的总和不超过 。
输出格式
对于每组测试数据,若不存在合法划分,输出 NO。
否则输出 YES,并继续输出三行:
- 第一行输出 个整数,表示第一组;
- 第二行输出 个整数,表示第二组;
- 第三行输出 个整数,表示第三组。
这 个整数必须恰好构成原序列 的一个排列,并且三组元素和必须能构成面积为正的三角形。
若存在多种方案,输出任意一种。
样例
输入
4
6 2 2 2
1 1 1 1 1 1
5 3 1 1
1 1 1 1 1
6 2 2 2
1 1 1 1 1 3
8 1 2 5
16 1 1 1 1 1 1 12
输出
YES
1 1
1 1
1 1
NO
NO
YES
16
12 1
1 1 1 1 1
说明
第一组测试数据中,每组都放入两个 ,三组元素和均为 ,可以构成边长为 的正三角形。
第二、三组测试数据不存在合法划分。
第四组测试数据中,三组元素和分别为 ,可以构成面积为正的三角形。