【问题描述】
已知 3 个矩形的大小依次是 a1 × b1, a2 × b2 和 a3 × b3。用这 3 个矩形能拼 出的所有
多边形中,边数最少可以是多少?
例如用 3 × 2 的矩形(用 A 表示)、4 × 1 的矩形(用 B 表示)和 2 × 4 的矩 形(用 C
表示)可以拼出如下 4 边形。

例如用 3 × 2 的矩形(用 A 表示)、3 × 1 的矩形(用 B 表示)和 1 × 1 的矩 形(用 C
表示)可以拼出如下 6 边形。

【输入格式】
输入包含多组数据。
第一行包含一个整数 T,代表数据组数。
以下 T 行,每行包含 6 个整数 a1, b1, a2, b2, a3, b3,其中 a1, b1 是第一个矩 形的边
长,a2, b2 是第二个矩形的边长,a3, b3 是第三个矩形的边长。
【输出格式】
对于每组数据,输出一个整数代表答案。
【样例输入】
2
2 3 4 1 2 4
1 2 3 4 5 6
【样例输出】
4
8
【评测用例规模与约定】
对于 10% 的评测用例,1 ≤ T ≤ 5,1 ≤ a1, b1, a2, b2, a3, b3 ≤ 10,a1 = a2 = a3。
对于 30% 的评测用例,1 ≤ T ≤ 5,1 ≤ a1, b1, a2, b2, a3, b3 ≤ 10。
对于 60% 的评测用例,1 ≤ T ≤ 10,1 ≤ a1, b1, a2, b2, a3, b3 ≤ 20。
对于所有评测用例,1 ≤ T ≤ 1000,1 ≤ a1, b1, a2, b2, a3, b3 ≤ 100。
矩形拼接题目给定一个三个矩形的长和高,然后根据这六个数据来判断这三个矩形能组成的最短多边形是什么,通过实验我们发现无论三个矩形的长和高怎样的都可以拼成8边形,
矩形本来就是四边形,所以三个矩形组成最短多边形也只能是4边形,
通过多次手画枚举发现,只有三种情况出现,第一种四边形,第二种六边形,第三种八边形
第一种:三个矩形的任意一边都相等。

第二种:两个矩形的一边相等,且这两个矩形的另外一边的和等于第三个矩形的任意一边。

第一种:只要两个矩形的一条边相等那么至少也是个六边形

第二种:只要两个矩形两条边之和等于第三个矩形的任意一条边,那么至少也是六边形

其他情况就是八边形了,这个好判断只要没有以上的任意一条条件那么直接就是八边形了
下图是自己分析的草图

1 首先扫描器输入一共有多少对需要判断的三个矩形,然后根据这个数量,把每次需要判断的六个边长进行赋值,
2建一个方法,把六条边放进去,然后进行第一轮判断,判断第一个矩形的第一条边跟第二个矩形、第三个矩形的四条边是否相等,如果相等那么就让t等于1,(t只要等于1了,就说明至少是六边形)再继续判断如果第三个矩形的边还跟上面if的判断相等,那么就是四边形了,还有一种情况就是这两个矩形的另外两条边的和如果等于第三个矩形的任意一边,那么就直接打印4并return。
3这个方法写完之后我们再让第一个矩形第二条边按照相同的方法进行2判断,
4 第一个矩形跟其他的四条边判断完毕,然后再继续判断第二个矩形跟第三个矩形的两条边判断,如果第二个矩形的任意一边相等于第三个矩形的任意一边,那么让t等于1,继续判断这两个矩形的另外两条边的和如果等于第一个矩形的任意一边,那么让s等于1(s==1代表是个四边形),
5其余情况就是判断六边形的最后一中情况,把所有的六条边进行比对只要有一条边等于另外两个矩形的任意两边之和,那么就是六边形,一共判断24次,
6最后进行输出了,我们之前只要s==1就直接进行打印了,那么只剩下6,8没有打印了,如果s!=1,t等于1那么打印6,其余情况就是8变形的情况了,打印8即可
package 第十三届省赛;import java.util.Scanner;public class 矩形拼接 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int T=sc.nextInt();int xa,xb,xc,ya,yb,yc;for (int i=0;i
