CodeForces

【题意概述】

   给定一串数,从中挑三个,判断能否组成一个有正面积的三角形,如果能就输出YES,否则就输出NO
    

【题目分析】

   将 n 个数从大到小进行排列,三个三个往下去判断,只要后两个的和比第一个大的时候就满足条件。

【AC】

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 bool cmp(int a,int b) {
 5     return a > b;
 6 }
 7 int main() {
 8     int n;
 9     int num[99999];
10     int ans = false;
11     while(~scanf("%d",&n)) {
12         ans = false;
13         for(int i = 0; i < n; i++)
14              scanf("%d",&num[i]);
15              
16         sort(num,num+n,cmp);
17         
18 
19         if(n >= 3)
20             for(int i = 0; i < n-2; i++) 
21                 if(num[i+1]+num[i+2] > num[i]) {
22                     ans = true;
23                     break;
24                 }
25                  
26         if(ans) printf("YES
");
27         else printf("NO
");
28     }
29     return 0;
30 } 
原文地址:https://www.cnblogs.com/jj81/p/8848995.html