题目链接:http://poj.org/problem?id=2967
题目大意:
给定系列长度,求是否有规定的三角形
(不是所有的都可以组成三角形&&有至少一种组合可以组成三角形)-> 打印通过,否则打印拒绝。
题目有时间限制,需要用putchar(),按位输入。此题还需选择g++编译器,否则超时。
/*** @description: 给定系列长度,求是否有规定的三角形* (不是所有的都可以组成三角形&&有至少一种组合可以组成三角形)* 考察输入putchar()比较快,按位输入* @author: michael ming* @date: 2019/5/20 22:38* @modified by: */
#include <cstdio>
#include <algorithm>
using namespace std;
int num[1000001];
char ch;
int input()
{int res = 0;while(ch = getchar()){if(ch >= '0' && ch <= '9')res = res*10 + ch - '0';elsebreak;}return res;
}
bool check(int *num, int n)
{if(n <= 3)return false;if(num[0]+num[1] > num[n-1]) //全部可以组成三角形return false;for(int i = 0; i < n-2; i++){if(num[i]+num[i+1] > num[i+2]) //有至少一种三角形可能return true;}return false;
}
int main()
{int n;n = input();for (int i = 0; i < n; ++i)num[i] = input();sort(num, num+n);if (check(num, n))printf("The set is accepted.\n");elseprintf("The set is rejected.\n");return 0;
}