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

#define REP(i,n) for(int i=0;i<(n);i++)
#define ALL(v) v.begin(),v.end()

using ll=long long;
const int M=10000;

ll f(){
  ll res=0;
  string s;cin>>s;
  if(s[0]=='-')s=s.substr(1);
  bool ok=false;
  REP(i,s.size())
    if(s[i]=='.')s+=string(4-((int)s.size()-i-1),'0'),ok=true;
    else res=res*10+s[i]-'0';
  if(!ok)res*=M;
  return res;
}

ll ceilM(ll a){
  if(a>0)return (a-1)/M*M+M;
  return ((-a)/M)*-M;
}

ll floorM(ll a){
  return a/M*M;
}

int main(){
  ll x=f(),y=f(),r=f(),ans=0;
  for(ll i=ceilM(x-r);i<=x+r;i+=M){
    ll tmp=sqrt(r*r-(x-i)*(x-i)),d;
    for(ll _=-10;_<=10;_++)if((tmp+_)*(tmp+_)+(x-i)*(x-i)<=r*r)d=tmp+_;
    ans+=(floorM(y+d)-ceilM(y-d))/M+1;
  }
  cout<<ans<<endl;
}

#include<bits/stdc++.h>
using namespace std;
int main(){
long 	double   x,y,r;
	cin>>x>>y>>r;
	r+=1e-14;
//	cout<<setprecision(10)<<mny<<" "<<setprecision(10)<<mxy<<endl;
	long double   mnyy=ceil(y-r);
	long double   mxyy=floor(y+r);
	//cout<<mnyy<<" "<<mxyy<<endl;
	unsigned long long count=0.0;
	while(mnyy<=mxyy){
		long double   sq=sqrt((r*r)-((y-mnyy)*(y-mnyy)));
	//	cout<<sq<<endl;
		//cout<<x<<endl;
		long double   s=ceil(x-sq);
		long double   f=floor(x+sq);
	//	cout<<s<<" "<<f<<endl;
	//	cout<<s<<" "<<f<<endl;
			count+=((f-s+1));
		mnyy=mnyy+1.0000000000;
	//	cout<<count<< " count"<<endl;
	}
	cout<<count<<endl;
	return 0;
}