//To debug :  g++ -g file.cpp -o code
//to flush output : fflush(stdout) or cout.flush()
//cout<<setprecision(p)<<fixed<<var
//use 1LL<<i to for 64 bit shifting , (ll)2 because by default 2 is ll
//take care of precedence rule of operators 
//do not forget to change the sizes of arrays and value of contants and other things after debugging  
 
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rep(i,a,n) for(i=a;i<n;++i)
#define irep(i,n,a) for(i=n;i>a;--i)
#define mod 1000000007
#define pb push_back
#define big 9223372036854775807
#define big1 LONG_MAX
#define big2 ll_MAX
#define big3 1000000000
#define sma1 LONG_MIN
#define sma2 ll_MIN
#define sma3 -1000000000
#define mp make_pair
#define dub double
#define ivec vector<ll>
#define lvec vector<long long>
#define cvec vector<char>
#define svec vector<string>
#define mt make_tuple
#define MOD 998244353
#define ld long double
#define pi acos(-1.0)
 
#define SZ(x)  (ll)(x.size())
 
//comment the below if not required
 
/*
 
#define ss second.second
#define ff first.first
#define f first
#define s second
#define sf second.first
#define fs first.second
*/
 
#define IOS std::ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
 
//cout<<"Case #"<<c<<": "<<ans<<"\n" ;

ld x,y,r;

ll xc,yc,rc,ans;

ll read() {
    ld x;
    cin>>x;
    return llround(x * 10000);
}

ll solve(ll X)
{
	ll l,r,m,L1=LLONG_MIN,val,R1=LLONG_MIN;

	l = yc , r = yc+rc ;

	while(l<=r)
	{
		m = (l+r)/2;

		val = (m-yc)*(m-yc)+(X-xc)*(X-xc);

		if(val<=(rc*rc))
		{
			R1 = m;
			l = m+1;
		}
		else
			r = m-1;
	}

	r = yc , l = yc-rc;

	while(l<=r)
	{
		m = (l+r)/2;

		val = (m-yc)*(m-yc)+(X-xc)*(X-xc);

		if(val<=(rc*rc))
		{
			L1 = m;
			r = m-1;
		}
		else
			l = m+1;
	}

	if(L1<=R1 && L1!=LLONG_MIN && R1!=LLONG_MIN)
		return (floor(((ld)R1)/1e4)-ceil(((ld)L1)/1e4)+1);
	else
		return 0;
}

int main()
{
	IOS;

	xc = read();
	yc = read();
	rc = read();

	ll i;

	i = floor(((xc+rc)/1e4))*1e4;

	for(;i>=(xc-rc);i-=1e4)
	{
		ans+=solve(i);
	}

	cout<<ans;

	return 0;
}
#include<bits/stdc++.h>							
#define pb push_back
#define ll long long
#define ld long double
#define lld long double

using namespace std;
 
clock_t time_p=clock();
void Time() {
	time_p=clock()-time_p;
	cerr<<"Time Taken : "<<(float)(time_p)/CLOCKS_PER_SEC<<"\n";
}

const int INF = 1e9 + 7;
lld pi=3.1415926535897932;
const long long INF64 = 9e18;
const long long mod = 998244353;


void solve() {
	ld x, y, r;
	cin >> x >> y >> r;
	r = nextafter(r, INFINITY);
	ll ans = 0;
	for(ll i = floor(x - r); i <= ceil(x + r); ++i) {
		ld left = r * r - (x - i) * (x - i);
		if(left >= 0) {
			ld range = sqrt(left);
			ld low = y - range, high = y + range;
			low = ceil(low); high = floor(high);
			ans += (high - low + 1);
			}
		}
		cout << ans << endl;
}

int main() {
	ios_base :: sync_with_stdio(0);
	cin.tie(NULL);
	cout.tie(NULL);
	cout.precision(35);
	int t;
	solve();
	Time();
	return 0;
}
