#include <bits/stdc++.h>
using namespace std;
#define rep(i, c) for (int i = 0; i < (int)c; i++)
using ll = long long;
// 入力のときに10000倍して四捨五入する関数
int in() {
    double x;
    cin >> x;
    x *= 10000;
    return round(x);
}

// x^2 * y^2 = r^2 
bool ok(ll dx, ll dy, ll z) { return dx * dx + dy * dy <= z * z; }
// 円の上半分を探索
ll f(ll x, ll y, ll z, ll lim) { //lim上限
    int l = 0, r = 1;
    ll res = 0;
    for (int i = int(1e9) + 50000; i >= lim; i -= 10000) {
        while (ok(x - l * 10000, i - y, z)) --l;
        while (ok(r * 10000 - x, i - y, z)) ++r;
        res += r - l - 1;
    }
    return res;
}

int main() {
    ll x = in();
    ll y = in();
    ll z = in();
    x %= 10000;
    y %= 10000;
    ll ans = f(x, y, z, 10000); //上半分
    ans += f(x, -y, z, 0); //下半分
    cout << ans << endl;
    return 0;
}
// D - Circle Lattice Points
#include <bits/stdc++.h>
using namespace std;
using ll = int64_t;
using dbl = long double;

int main(){
	ll scale = 1e4;
	dbl x, y, r; cin>>x>>y>>r;
	ll X = round(x*scale);
	ll Y = round(y*scale);
	ll R = round(r*scale);
	ll r2 = R*R;
	ll ans = 0;
	for(ll i=0; i<=2*R+scale; i+=scale){
		ll y = floor((Y+R)/(dbl)scale)*scale - i;
		ll dy = Y - y;
		ll dx2 = r2 - dy*dy;
		if(dx2 < 0) continue;
		ll dx = floor(sqrt((dbl)dx2));
		ll L = ceil((X - dx)/(dbl)scale);
		ll R = floor((X + dx)/(dbl)scale);
		ans += R - L + 1;
	}
	cout<< ans <<endl;
}
