#include<iostream>
#include <iomanip>
using namespace std;
int a[1000];
int main()
{
	int n;
	int maxn=0;
	int sum=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
	cin>>a[i];
	if(a[i]>maxn)
	maxn=a[i];
	sum+=a[i];
}
if(sum-maxn<=maxn)
cout<<"No";
else
cout<<"Yes";
}
### Prompt

Please provide a CPP coded solution to the problem described below:

Determine if an N-sided polygon (not necessarily convex) with sides of length L_1, L_2, ..., L_N can be drawn in a two-dimensional plane.

You can use the following theorem:

Theorem: an N-sided polygon satisfying the condition can be drawn if and only if the longest side is strictly shorter than the sum of the lengths of the other N-1 sides.

Constraints

* All values in input are integers.
* 3 \leq N \leq 10
* 1 \leq L_i \leq 100

Input

Input is given from Standard Input in the following format:


N
L_1 L_2 ... L_N


Output

If an N-sided polygon satisfying the condition can be drawn, print `Yes`; otherwise, print `No`.

Examples

Input

4
3 8 5 1


Output

Yes


Input

4
3 8 4 1


Output

No


Input

10
1 8 10 5 8 12 34 100 11 3


Output

No

### Response

```cpp
#include<iostream>
#include <iomanip>
using namespace std;
int a[1000];
int main()
{
	int n;
	int maxn=0;
	int sum=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
	cin>>a[i];
	if(a[i]>maxn)
	maxn=a[i];
	sum+=a[i];
}
if(sum-maxn<=maxn)
cout<<"No";
else
cout<<"Yes";
}
```