#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i = 0 ; i < (n) ; i++)
#define rep1(i,n) for(int i = 1 ; i <= (n) ; i++)
#define rrep(i,n) for(int i = (n) - 1 ; i >= 0 ; i--)
#define rrep1(i,n) for(int i = (n) ; i > 0 ; i--)
#define INF 1001001001
#define MOD 1000000007
using ll = int64_t;
using P = pair<int, int>;
using PL = pair<ll,ll>;
using PD = pair<double,double>;
using vi = vector<int>;
using vvi = vector<vector<int>>;
using vl = vector<ll>;
using vvl = vector<vector<ll>>;
using p_q = priority_queue<int, vi, greater<int>>;
#define v(n) vector<n>
#define vv(n) vector<vector<n>>
#define vvv(n) vector<vector<vector<n>>>
#define p_q(n) priority_queue<(n), v(n), greater<n>>
#define line cout << "================================" << endl;
#define Yn(x) ((x) ? "Yes" : "No")
#define yn(x) ((x) ? "yes" : "no")
#define mmax(a,b) a = max(a,b)
#define mmin(a,b) a = min(a,b)
#define debug(x) cout << #x" : " << (x) << endl;
#define output(x) cout << (x) << endl;
#define outs(x) cout << #x << endl;
#define mod(n,x) ((n)%(x))
#define all(a) (a).begin(),(a).end()

class alucrex{
    public:
    void vin(vi& a){rep(i,a.size())cin>>a[i];}
    void vvin(vvi& a){rep(i,a.size())rep(j,a[i].size())cin>>a[i][j];}
    void vvdes(vvi& a){rep(i,a.size()){rep(j,a[i].size()){
        cout << a[i][j] << " ";}cout<<endl;
    }}
    void vinl(vl& a){rep(i,a.size())cin>>a[i];}
    void vvinl(vvl& a){rep(i,a.size())rep(j,a[i].size())cin>>a[i][j];}
    void vvdesl(vvl& a){rep(i,a.size()){rep(j,a[i].size()){
        cout << a[i][j] << " ";}cout<<endl;
    }}
};

int main(){
    alucrex al;
    ll a, b, c;cin >> a >> b >> c;
    a *= a;
    b*= b;
    c*= c;
    cout << Yn(a+b<c) << endl;
}
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); ++i)
#define sorts(s) sort(s.begin(), s.end())
#define sortu(s) sort(s.begin(), s.end(), greater<>())
typedef long long int ll;
using Graph = vector<vector<int>>;

int main(void) {
    int i = 0, j = 0, k = 0;
    int N; ll MOD = (1e+9)+7;
    cin >> N;
    vector<ll> A(N);
    rep(i, N) {
        cin >> A[i];
    }
    vector<ll> fib(N+1);
    rep(i, N) {
        if (i == 0) {
            fib[i+1] = 1;
        } else if (i == 1) {
            fib[i+1] = 2;
        } else {
            fib[i+1] = (fib[i-1] + fib[i]) % MOD;
        }
    }
    vector<ll> plus(N-1), mins(N-1);
    rep(i, N-1) {
        if (i == 0) {
            plus[i] = 1; mins[i] = 1;
        } else {
            plus[i] = (plus[i-1] + mins[i-1]) % MOD;
            mins[i] = plus[i-1];
        }
    }
    rep(i, N-2) {
        plus[i] = (fib[N-1-i] * plus[i]) % MOD;
        mins[i] = (fib[N-2-i] * mins[i]) % MOD;
    }
    ll ans = (A[0] * fib[N]) % MOD;
    rep(i, N-1) {
        ans += (A[i+1] * plus[i]) % MOD;
        ans %= MOD;
        ans -= (A[i+1] * mins[i]) % MOD;
        if (ans < 0) {
            ans += MOD;
        } else {
            ans %= MOD;
        }
    }
    cout << ans << endl;
    //cout << fixed << setprecision(4) << ans << endl;
    return 0;
}