您的位置:首页 > 其它

CodeForces - 766B Mahmoud and a Triangle (贪心)

2018-01-21 18:44 507 查看
题目链接:
http://codeforces.com/problemset/problem/766/B
题意:

给定n个数,判断是否能够组成三角形;可以则输出YES,否则输出NO

思路:

先对n个数据进行排序,从第三个数字开始循环到第n个数字,判断数字能否和其前两个数组成三角形,一旦可以,退出循环;如果一直没能退出循环,说明这n个数都不能组成三角形

#include <iostream>
#include <algorithm>
#define rep(i, k, n) for (int i = (k); i < (n); i++)
const int N = 1e5;
using namespace std;
int n, a
;
const string s[2] = { "NO", "YES"};

int haveFormed()
{
cin >> n;

rep(i, 0, n)
cin >> a[i];

sort(a, a + n);

rep(i, 2, n)
{
if (a[i] - a[i - 1] < a[i - 2])
return 1;
}
return 0;
}

int main()
{
cout << s[haveFormed()];
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ACM