题目链接:http://poj.org/problem?id=2967
题目大意: 给定系列长度,求是否有规定的三角形 (不是所有的都可以组成三角形&&有至少一种组合可以组成三角形)-> 打印通过,否则打印拒绝。
题目有时间限制,需要用putchar(),按位输入。此题还需选择g 编译器,否则超时。
代码语言:javascript复制/**
* @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';
else
break;
}
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");
else
printf("The set is rejected.n");
return 0;
}