#include <iostream>
using namespace std;
void week_0_C()
{
    class polygon
    {
        unsigned int sided;
        int *data;
    public:
        polygon(){;}
        ~polygon(){delete [] data;}
        polygon( unsigned int &n)
        {
            sided = n;
            data = new int[n];
        }
        void input()
        {
            if (sided <= 2)
            {
                cout << "can not form a polygon\n";
                return;
            }
            int count = sided;
            while( count -- )
            {
                unsigned int temp;
                cin >> temp;
                data[count] = temp;
            }
            return;
        }
        bool form()
        {
            int max = data[0];
            int n = sided;
            while(n--)
                if(max < data[n])
                    max = data[n];
            n = sided;
            int sum = 0;
            while (n --)
                sum += data[n];
            return (max < (sum - max));
        }
    };
    
    unsigned int sided;
    cin >> sided ;
    polygon p1(sided);
    p1.input();
    if (p1.form())
        cout << "\nyes"<<endl;
    else
        cout << "\nno"<<endl;
    
    
    
    return;
}



int main ()
{
    week_0_C();
    return 0;
}
