hdu 5655 CA Loves Stick

题意

给你四个木棍的长度,问你这四根木棍能不能组成一个四边形。

思路

四边形成立的条件比较简单,就是任意三边之和大于第四边。

但是这道题目有两个坑。

一是输入的四条边中可能会出现长度为0的边。

二是四个数据都比较大,直接加减都容易爆long long。我的解决方案是使用unsighed long long,sort后判断a[0]+a[1] < a[2] + a[3]。

AC代码:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <set>
 6 #include <map>
 7 using namespace std;
 8 unsigned long long  a[6];
 9 int main()
10 {
11     int t;
12     scanf("%d",&t);
13     while(t--){
14        scanf("%I64u%I64u%I64u%I64u",&a[0],&a[1],&a[2],&a[3]);
15        sort(a,a+4);
16 
17        if(a[0]>0 && a[0]+a[1]>a[3]-a[2]){
18            printf("Yes
");
19        }else{
20            printf("No
");
21        }
22 
23     }
24     return 0;
25 }
原文地址:https://www.cnblogs.com/UniqueColor/p/5422661.html