题目描述:
给出6根棍子,能否在选出3根拼成一个三角形的同时剩下的3根也能组成一个三角形?
输入描述:
首先在一行中给出一个 t, 1 ≤ t ≤ 10 ^ 3,代表测试数据的组数
接下来t行,每行给出6个数字代表棍子长度,棍子长度为正且小于 10 ^ 9
输出描述:
在一行中输出 “Yes” or “No”
示例一:
输入
2
1 1 1 1 1 1
1 2 3 4 5 6
输出
Yes
No
算法思路:
我们不用暴力枚举所有种情况,我们可以先把数组排序,先选两个最小边相加跟最大的边比较,如果能构成三角形,那么比这两个边大的数相加也能构成三角形了。
代码
import java.util.*;
public class Main{public static void main(String[] args){Scanner in=new Scanner(System.in);int t=in.nextInt();int[] arr=new int[6];while(t--!=0){for(int i=0;i<6;i++)arr[i]=in.nextInt();Arrays.sort(arr);if(arr[0]+arr[1]>arr[2]&&arr[3]+arr[4]>arr[5]||arr[0]+arr[3]>arr[4]&&arr[1]+arr[2]>arr[5]||arr[0]+arr[4]>arr[5]&&arr[1]+arr[2]>arr[3]||arr[0]+arr[2]>arr[3]&&arr[1]+arr[4]>arr[5]){System.out.println("Yes");}else{System.out.println("No");}}}
}