#include <bits/stdc++.h>
using namespace std;
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
int ddx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
int ddy[8] = {0, 1, 1, 1, 0, -1, -1, -1};
void mad(long long int &a, long long int b) {
  a = (a + b) % 1000000007;
  if (a < 0) a += 1000000007;
}
vector<long long int> newVector(vector<long long int> v, long long int index,
                                long long int n) {
  vector<long long int> pre;
  for (int i = index; i >= 0; i--) {
    pre.push_back(v[i]);
  }
  vector<long long int> suff;
  for (int i = index + 1; i < n; i++) {
    suff.push_back(v[i]);
  }
  vector<long long int> res;
  for (auto i : pre) {
    res.push_back(i);
  }
  for (auto i : suff) {
    res.push_back(i);
  }
  return res;
}
long long int dist[400][400];
bool dfs(long long int index, long long int k, long long int n,
         vector<long long int> &v, long long int final) {}
long long int power(long long int x, long long int y, long long int p) {
  long long int res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) res = (res * x) % p;
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
vector<pair<long long int, long long int>> printDivisors(int n) {
  vector<pair<long long int, long long int>> v;
  for (int i = 1; i <= sqrt(n); i++) {
    if (n % i == 0) {
      if (n / i == i)
        v.push_back({i, i});
      else
        v.push_back({i, n / i});
    }
  }
  return v;
}
void add(pair<long long int, long long int> p,
         vector<pair<long long int, long long int>> &v,
         map<pair<long long int, long long int>, long long int> &mp) {
  if (v.size() > 0 && v[v.size() - 1].first == p.first &&
      v[v.size() - 1].second == p.second)
    return;
  else {
    v.push_back(p);
    mp[p]++;
  }
}
struct cmp {
  bool operator()(pair<long long int,
                       pair<long long int, pair<long long int, long long int>>>
                      p,
                  pair<long long int, long long int> p1) {
    return true;
  }
};
void solve() {
  long long int n, q;
  cin >> n >> q;
  long long int arr[n + 10];
  for (int i = 1; i <= n; i++) {
    cin >> arr[i];
  }
  long long int count = 0;
  while (q--) {
    long long int a, b, c;
    count = 0;
    cin >> a >> b >> c;
    for (int i = a; i < b; i++) {
      if (arr[i + 1] == c && i + 1 == b) {
        count++;
      } else if (arr[i] == c) {
        count++;
      } else if (arr[i] > c && arr[i + 1] < c) {
        count++;
      } else if (arr[i] < c && arr[i + 1] > c) {
        count++;
      }
    }
    cout << count << "\n";
  }
}
long long int result(long long int arr[], long long int h, long long int l,
                     long long int r, long long int dp[][2001],
                     long long int index, long long int n, long long int curr) {
  if (index == n) {
    return 0;
  }
  if (dp[index][curr] != -1) {
    return dp[index][curr];
  }
  long long int curr1 = (arr[index] + curr) % h;
  long long int curr2 = (arr[index] - 1 + curr) % h;
  long long int count = 0, count1 = 0;
  if (curr1 >= l && curr1 <= r) {
    count++;
  }
  if (curr2 >= l && curr2 <= r) {
    count1++;
  }
  count += result(arr, h, l, r, dp, index + 1, n, curr1);
  count1 += result(arr, h, l, r, dp, index + 1, n, curr2);
  dp[index][curr] = max(count, count1);
  return dp[index][curr];
}
bool check(vector<long long int> v) {
  for (auto it : v) {
    if (it == 0) continue;
    return 0;
  }
  return 1;
}
bool check1(vector<long long int> v) {
  for (auto it : v) {
    if (it < 0) return 1;
  }
  return 0;
}
long long int n;
bool recur(vector<long long int> v, long long int k, long long int i,
           long long int index, long long int maxi) {
  if (check(v)) {
    return 1;
  }
  if (pow(k, i) > maxi) {
    return 0;
  }
  if (check1(v)) {
    return 0;
  }
  long long int flag = 0;
  vector<long long int> v2 = v;
  for (int i = 0; i < v.size(); i++) {
    vector<long long int> v1 = v;
    v1[i] = v1[i] - pow(k, i);
    cout << "\n";
  }
  return flag;
}
long long int check(long long int a) {
  long long int z = 1;
  while (z <= a / 2) {
    z = z * 2;
  }
  if (z > a) {
    return z / 2;
  }
  return z;
}
void solve1() {
  long long int a, b, c;
  cin >> a >> b >> c;
  if (sqrt(a) + sqrt(b) < sqrt(c)) {
    cout << "Yes"
         << "\n";
  } else {
    cout << "No"
         << "\n";
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t = 1;
  for (int i = 0; i < t; i++) {
    solve1();
  }
  return 0;
}
