#include <bits/stdc++.h>

#define rep(i,n) for(int i=0;i<(int)(n);i++)
#define FOR(i,n,m) for(ll i=(ll)(n); i<=(ll)(m); i++)
#define RFOR(i,n,m) for(int i=(int)(n); i>=(int)(m); i--)
#define ITR(x,c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++)
#define RITR(x,c) for(__typeof(c.rbegin()) x=c.rbegin();x!=c.rend();x++)
#define setp(n) fixed << setprecision(n)

template<class T> bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T> bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; }

#define ll long long
#define vll vector<ll>
#define vi vector<int>
#define pll pair<ll,ll>
#define pi pair<int,int>

#define all(a) (a.begin()),(a.end())
#define rall(a) (a.rbegin()),(a.rend())
#define fi first
#define se second
#define pb push_back
#define ins insert

#define debug(a) cerr<<(a)<<endl
#define dbrep(a,n) rep(_i,n) cerr<<(a[_i])<<" "; cerr<<endl
#define dbrep2(a,n,m) rep(_i,n){rep(_j,m) cerr<<(a[_i][_j])<<" "; cerr<<endl;}

using namespace std;

template<class A, class B>
ostream &operator<<(ostream &os, const pair<A,B> &p){return os<<"("<<p.fi<<","<<p.se<<")";}
template<class A, class B>
istream &operator>>(istream &is, pair<A,B> &p){return is>>p.fi>>p.se;}

/* Some Libraries */

//-------------------------------------------------

const __int128_t geta = (__int128_t)100000000000LL * 100000000000LL;

int main(void)
{
    string Xs,Ys,Rs; cin>>Xs>>Ys>>Rs;
    __int128_t X,Y,R;
    {
        bool flg=false;
        ll m=10000;
        string tmp;
        for(auto c:Xs){
            if (flg) m/=10;
            if (c!='.') tmp.pb(c);
            if (c=='.') flg=true;
        }
        X = stoll(tmp)*m;
    }
    {
        bool flg=false;
        ll m=10000;
        string tmp;
        for(auto c:Ys){
            if (flg) m/=10;
            if (c!='.') tmp.pb(c);
            if (c=='.') flg=true;
        }
        Y = stoll(tmp)*m;
    }
    {
        bool flg=false;
        ll m=10000;
        string tmp;
        for(auto c:Rs){
            if (flg) m/=10;
            if (c!='.') tmp.pb(c);
            if (c=='.') flg=true;
        }
        R = stoll(tmp)*m;
    }

    ll ans=0LL;
    __int128_t xl = (X-R)/10000LL - 10;
    __int128_t xr = (X+R)/10000LL + 10;

    FOR(i,xl,xr){
        __int128_t x = (__int128_t)10000LL * i;
        if (x<X-R || X+R<x) continue;
        __int128_t top,bottom;
        {
            __int128_t lo=Y, hi=Y+R+100;
            while(hi-lo>1){
                __int128_t c = (lo+hi)/2;
                __int128_t dx = x-X;
                __int128_t dy = c-Y;
                if (dx*dx+dy*dy<=R*R){
                    lo = c;
                }else{
                    hi = c;
                }
            }
            top = lo;
        }
        {
            __int128_t lo=Y-R-100, hi=Y;
            while(hi-lo>1){
                __int128_t c = (lo+hi)/2;
                __int128_t dx = x-X;
                __int128_t dy = c-Y;
                if (dx*dx+dy*dy<=R*R){
                    hi = c;
                }else{
                    lo = c;
                }
            }
            bottom = hi;
        }

        top += geta;
        bottom += geta;
        ans += (ll)(top/10000LL - (bottom-1)/10000LL);
    }
    cout<<ans<<"\n";
    return 0;
}

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<bitset>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<deque>
#include<iomanip>
#include<list>
#include<map>
#include<deque>
#include<queue>
#include<set>
#include<stack>
#include<vector>
#include<string>
#include<chrono>
#include<random>
#include<unordered_map> 
#include<ctype.h>
#include<cassert>
using namespace std;
typedef long long ll; typedef pair<ll, ll> pll; typedef pair<int, int> pii; typedef unsigned long long ull; typedef long double ldb; typedef vector<long long> vll; typedef vector<int> vi; typedef pair<ll, ldb>pllldb; typedef double db;
#define pb push_back
#define eb emplace_back
#define mp make_pair
#define fi first
#define se second
#define all(a) (a).begin(),(a).end()
const double Pi = acos(-1.0); const int inf = 0x3f3f3f3f, Mod = 1e9 + 7, N = 2e3+1;
ll qpow(ll a, ll b, ll mod = Mod)
{
	ll ans = 1;
	while (b)
	{
		if (b & 1)ans = ans * a % mod;
		a = a * a % mod;
		b >>= 1;
	}
	return ans;
}
ll gcd(ll a, ll b) { return (b ? gcd(b, a % b) : a); }
bool cmp(pii a, pii b)
{
	return a.second - a.first > b.second - b.first;
}

/*----------------------------------------------------------------------Code follows-----------------------------------------------------------------------*/
/*----------------------------------------------------------------------Code follows-----------------------------------------------------------------------*/
ldb x, y, r;ll ans;
int main()
{
	ios::sync_with_stdio(0); cin.tie(0), cout.tie(0);
	cin >> x >> y >> r;
	r = nextafter(r, INFINITY);
	for (int i = ceil(x - r); i <= floor(x + r); i++)
	{
		ldb t = sqrt(pow(r, 2) - pow(i - x,2));
		ans += floor(y + t) - ceil(y - t) + 1;
	}
	cout << ans << '\n';
}
/*

*/