#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define forin(in ,n) for(ll i=0; i<n; i++) cin>>in[i]
#define forout(out) for(ll i=0; i<(ll)out.size(); i++) cout<<out[i]<<endl
#define rep(i, n) for (ll i = 0; i < n; ++i)
#define rep_up(i, a, n) for (ll i = a; i < n; ++i)
#define rep_down(i, a, n) for (ll i = a; i >= n; --i)
#define P pair<ll, ll>

#define all(v) v.begin(), v.end()
#define fi first
#define se second
#define vvvll vector<vector<vector<ll>>>
#define vvll vector<vector<ll>>
#define vll vector<ll>
#define pqll priority_queue<ll>
#define pqllg priority_queue<ll, vector<ll>, greater<ll>>

constexpr ll INF = (1ll << 60);
// constexpr ll mod = 1000000007;
constexpr ll mod = 998244353;
constexpr double pi = 3.14159265358979323846;
template <typename T>
inline bool chmax(T &a, T b) {
    if (a < b) {
        a = b;
        return 1;
    }
    return 0;
}
template <typename T>
inline bool chmin(T &a, T b) {
    if (a > b) {
        a = b;
        return 1;
    }
    return 0;
}
template <typename T>
void pt(T val) {
    cout << val << "\n";
}
template <typename T>
void pt_vll(vector<T> &v) {
    ll vs = v.size();
    rep(i, vs) {
        cout << v[i];

        if (i == vs - 1)
            cout << "\n";
        else
            cout << " ";
    }
}
ll mypow(ll a, ll n) {
    ll ret = 1;
    if(n==0) return 1;
    if(a==0) return 0;
    rep(i, n) {
        if (ret > (ll)(1e18 + 10) / a) return -1;
        ret *= a;
    }
    return ret;
}
long long modpow(long long a, long long n, long long mod) {
    long long res = 1;
    while (n > 0) {
        if (n & 1) res = res * a % mod;
        a = a * a % mod;
        n >>= 1;
    }
    return res;
}
long long modinv(long long a, long long m) {
    long long b = m, u = 1, v = 0;
    while (b) {
        long long t = a / b;
        a -= t * b; swap(a, b);
        u -= t * v; swap(u, v);
    }
    u %= m;
    if (u < 0) u += m;
    return u;
}

int main() {
    ll r,x,y,z,st,ed,left,right,ans=0;
    double X,Y,R;
    cin>>X>>Y>>R;
    X*=10000.00000001;
    Y*=10000.00000001;
    R*=10000.00000001;
    x=X;
    y=Y;
    r=R;
    if(y+r>=0) st=(y+r)/10000;
    else st=(y+r-9999)/10000;
    if(y-r>=0) ed=(y-r+9999)/10000;
    else ed=(y-r)/10000;
    rep_up(i,ed,st+1){
        ll yy=y-10000*i;
        ll k=sqrt(r*r-yy*yy)+1;
        while(k*k+yy*yy>r*r){
            k--;
        }
        if(x+k>=0) right=(x+k)/10000;
        else right=(x+k-9999)/10000;
        if(x-k>=0) left=(x-k+9999)/10000;
        else left=(x-k)/10000;
        ans+=right-left+1;
    }
    cout<<ans<<endl;
}
#include <bits/stdc++.h>
  
using namespace std;


long long int MOD=1000000007;


long long power(long long a,long long b)
{
    a %= MOD;
    long long res = 1;
    while (b > 0) {
        if (b & 1)
            res = res * a % MOD;
        a = a * a % MOD;
        b >>= 1;
    }
    return res;
}

bool isprime(long long n)
{
    if(n==1)
    return false;
    long long i;
    for(i=2;i*i<=n;i++)
    {
        if(n%i==0)
        return false;
    }
    return true;
}




/*_______________________________________________*/






int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    long double x,y,r,i;
    long long ans=0;
    cin>>x>>y>>r;
    r+=1e-14;
    for(i=floor(x-r);i<=ceil(x+r);i++)
    {
        long double temp1=(r*r)-((i-x)*(i-x));
        if(temp1<0)
        continue;
        temp1=sqrt(temp1);
        ans+=floor(temp1+y)-ceil(-temp1+y)+1;
    }
    cout<<ans;
}