Triangle

Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

Problem Description

After Xiaoteng took a math class, he learned a lot of different shapes, but Xiaoteng’s favorite triangle is because he likes stable shapes, just like his style.

After the Xiaoxun knew it, he wanted to give a triangle as a gift to Xiaoteng. He originally planned to do one, but he was too tired. So he decided to bring some wooden sticks to Xiaoteng and let Xiaoteng make a triangle himself.

One day, Xiaoxun brought n sticks to Xiaoteng. Xiaoteng wanted to try to use three of them to form a triangle, but the number is too much, Xiaoteng stunned, so he can only ask for your help.

Input

There are mutiple test cases.

Each case starts with a line containing a integer n(1≤n≤5×106) which represent the number of sticks and this is followed by n positive intergers(smaller than 231−1) separated by spaces.

Output

YES or NO for each case mean Xiaoteng can or can’t use three of sticks to form a triangle.

Sample Input

4
1 2 3 4

Sample Output

YES

思路:

需要注意的是这题很容易超时,不能用cin, cout,还是多组数据,之后暴力解决就行了

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    int n;
    while (scanf("%d", &n) != EOF){
    	bool flag = false;
	    vector<int> a(n);
	    for (int i = 0; i < n; i++) scanf("%d", &a[i]);
	    for (int i = 0; i < n - 2; i++) {
	        if (a[i] + a[i + 1] > a[i + 2]) {
	            cout << "YES\n";
	            flag = true;
	            break;
	        }
	    } 
	    if (flag == false) cout << "NO\n";
	}
    return 0;
}