CodeForces - 766B Mahmoud and a Triangle
【题意概述】
给定一串数,从中挑三个,判断能否组成一个有正面积的三角形,如果能就输出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\n"); 27 else printf("NO\n"); 28 } 29 return 0; 30 }