#include<cstdio>
#include<algorithm>
using namespace std;
int main(void)
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if(a*a+b*b<c*c) printf("Yes\n");
	else printf("No\n");
	return 0;
}

#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
const int mod=1e9+7;
//Note:
// 1.Perform binary search on sorted array only.
// 2.For ceil caculations we can use something like ceil(10/(double)3)-->>4 


#define ff              first
#define ss              second
#define pb              push_back
#define int             long long
#define MOD         1000000007
#define mod         1000000007
#define mod2            998244353
#define inf             1e18
#define ps(x,y)         fixed<<setprecision(y)<<x
#define ll              long long
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
 
const int N = 200005;
 

 bool myCompare(int a,int b)
{
  return a>b;
}
bool isPrime(int n) 
{ 
    
    if (n <= 1) 
        return false; 
  
    
    for (int i = 2; i*i<= n; i++) 
        if (n % i == 0) 
            return false; 
  
    return true; 
}
bool isPalindrome(string str)
{
    
    int l = 0;
    int h = str.length() - 1;
  
   
    while (h > l)
    {
        if (str[l++] != str[h--])
        {
           
            return false;
        }
    }
   return true;
}

 vector<bool>prime(N + 1,true);
void SieveOfEratosthenes(int n)
{
    
   
    // memset(prime, true, sizeof(prime));
    prime[0]=prime[1]=false;
    for (int p = 2; p * p <= n; p++)
    {
        
        if (prime[p] == true) 
        {
            for (int i = p * p; i <= n; i += p)
                prime[i] = false;
        }
    }
}
 int power(int x, unsigned int y) 
{ 
    int res = 1;     // Initialize result 
   
    while (y > 0) 
    { 
        // If y is odd, multiply x with result 
        if (y & 1) 
            res = res*x%mod; 
   
        // y must be even now 
        y = y>>1; // y = y/2 
        x = x*x % mod;  // Change x to x^2 
    } 
    return res%mod; 
}

ll fastModuloExponentiation(ll a,ll b,ll M)
{
    ll result=1;
    while(b>0){
    if(b&1){
    result=(result*a)%M;}
    
    a=(a*a)%M;
    
    b=b>>1;
    }
   return result;
    
}
int modInv(int a){return power(a,MOD-2);}
int fact[N],inv[N];
void factorial(int n){
	fact[0]=1;
	for(int i=1;i<=n;i++){
		fact[i]=fact[i-1]*i;
		if(fact[i]>=MOD)
			fact[i]%=MOD;
	}
}
void InvFactorial(int n){
	inv[0]=1;
	for(int i=1;i<=n;i++)
		inv[i]=modInv(fact[i]);
}
int ncr(int n,int r){
    
	if(n<r||n<0||r<0)
		return 0;
	int b=inv[n-r];
	int c=inv[r];
	int a=fact[n]*b;
	if(a>=MOD)
		a%=MOD;
	a*=c;
	if(a>=MOD)
		a%=MOD;
	return a;
}

void solve() {
   int a,b,c;
   cin>>a>>b>>c;
   int x=a*a;
   int y=b*b;
   int z=c*c;
//   cout<<x<<" "<<y<<" "<<z;
   if((x+y)<z)
   cout<<"Yes";
   else
   cout<<"No";
  
  }

signed main()
{ 
      ios;
      int test;
      test=1;
      int tc=1;
    //   factorial(N-1);
    //   InvFactorial(N-1);
    
    // SieveOfEratosthenes(N-1);
      // cin>>test;
      
      while(test--)
      {
          //cout<<"Case #"<<tc<<": ";
         solve();
      }
       
    
    return 0;
	}