/*pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")*/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define FOR(i, a, n) for (ll i = (ll)a; i < (ll)n; i++)
#define RFOR(i, a, n) for (ll i = (ll)n - 1; i >= (ll)a; i--)
#define rep(i, n) FOR(i, 0, n)
#define rrep(i, n) RFOR(i, 0, n)
#define ALL(v) v.begin(), v.end()
#define bra(first, second) '(' << first << ',' << second << ')'
//constexpr ll MOD = 1000000007;
constexpr ll MOD = 998244353;
ll INF = 1001001001001001001;
long double EPS = 1e-8;
long double PI = 3.141592653589793238;
template <typename T>
void remove(std::vector<T> &vector, unsigned int index)
{
   vector.erase(vector.begin() + index);
}

using Graph = vector<vector<ll>>;

// MOD確認

long double X,Y,R;
ll x,y,r;

int main(){
   cin >> X >> Y >> R;
   x = floor(X*10000+0.5),y = floor(Y*10000+0.5), r = floor(R*10000+0.5);
   ll ans = 0;
   for(ll i = ((x-r) / 10000) * 10000;i <= ((x+r) / 10000) * 10000;i += 10000){
      ll a = r * r - (i-x) * (i-x);
      ll l = ((y - (ll)pow(a,0.5) - 150000) / 10000) * 10000,r = ((y + (ll)pow(a,0.5) + 150000) / 10000) * 10000;
      ll L = l,R = r;
      while(l < R+10000){
         if((y-l)*(y-l) > a) l += 10000;
         else break;
      }
      while(r > L-10000){
         if((y-r)*(y-r) > a) r -= 10000;
         else break;
      }
      if(l <= r) ans += (r - l + 10000) / 10000;
   }
   cout << ans << endl;
}
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define yes() cout << "Yes" << endl
#define no() cout << "No" << endl
using ll = long long;
using ld = long double;
using P = pair<int,int>;


int main() {
    int a,b,c;
    cin>>a>>b>>c;
    if(a*a+b*b<c*c)yes();
    else no();

    


}
