#include <bits/stdc++.h>

#define int long long
#define double long double
using namespace std;

const double ESP = 1e-11;
double X, Y, R;

double dist(double u1, double v1, double u2, double v2) {
    return (u1 - u2) * (u1 - u2) + (v1 - v2) * (v1 - v2);
}

int bsl(int x) {
    int rs = ceil(Y), l = -1e9, r = floor(Y);
    while (l <= r) {
        int mid = (l + r) / 2;
        if (dist(x, mid, X, Y) <= R * R || abs(dist(x, mid, X, Y) - R * R) < ESP) {
            rs = mid;
            r = mid - 1;
        } else
            l = mid + 1;
    }
    return rs;
}

int bsr(int x) {
    int rs = floor(Y), l = ceil(Y), r = 1e9;
    while (l <= r) {
        int mid = (l + r) / 2;
        if (dist(x, mid, X, Y) <= R * R || abs(dist(x, mid, X, Y) - R * R) < ESP) {
            rs = mid;
            l = mid + 1;
        } else
            r = mid - 1;
    }
    return rs;
}

int32_t main() {
#ifdef ACM
    freopen("input", "r", stdin);
#endif
    cin >> X >> Y >> R;
    int rs = 0, l = ceil(X - R), r = floor(X + R);
    for (int x = l; x <= r; x++) {
        int ll = bsl(x), rr = bsr(x);
        rs += rr - ll + 1;
    }
    cout << rs;
}
#include "bits/stdc++.h"
using namespace std;
#define REP(i, n) for(ll i = 0;i < n;i++)
#define ll long long
#define MOD 1000000007LL
//#define MOD 998244353LL
#define doublecout(a) cout<<setprecision(16)<<a<<endl;
using vi = vector<ll>; // intの1次元の型に vi という別名をつける
using vvi = vector<vi>; // intの2次元の型に vvi という別名をつける
using vvvi = vector<vvi>; // intの2次元の型に vvi という別名をつける

//123.456や-78を10000倍して整数に
ll xch(string ins){
  /////////////「.」があるかないかチェック
  int flag;
  flag=0;
  for(ll i=0;i<ins.size();i++){
    if (ins[i]=='.'){
      flag=1;
      break;
    }
  }
  if (flag==0){
    ins+=".";
  }
  /////////////「.」があるかないかチェックここまで

  ll ret=0;
  ll nm=0;
  for(ll i=0;i<ins.size();i++){
    if (nm!=0)nm--;
    if (ins[i]=='.') nm=4;/////////////////////////ここが0埋めの数になる
  }
  for(ll i=0;i<nm;i++){
    ins+="0";
  }
 
  for(ll i=0;i<ins.size();i++){//ここで文字→数値に変換
    if (ins[i]=='-')continue;
    if (ins[i]=='.')continue;
    ret*=10;
    ret+=ins[i]-48;
  }
  if (ins[0]=='-')ret=-ret;

  return ret;
}
 
 
 
//整数の割り算、割ったあまりが正の整数になるやつ
//bbbは正の数
constexpr ll floordiv(ll aaa,ll bbb)
{
  if (aaa<0){
    return (aaa-bbb+1)/bbb;
  }else{
    return aaa/bbb;
  }
}
 
int main(){
  ll ans=0;
  string ss0,ss1,ss2;
  cin >> ss0>>ss1>>ss2;
  ll x=xch(ss0);
  ll y=xch(ss1);
  ll r=xch(ss2);
 
  ll topn=y+r;
  ll rr=r*r;
  topn-=topn%10000;
 
  for(ll i=topn;i>=y-r;i-=10000){
    ll yy=abs(i-y);
    ll xx2=rr-yy*yy;
    if (xx2<0)continue;

    double dx=sqrt(xx2);
    ll ldx=dx;
    if (ldx*ldx>xx2)ldx--;
    ans+=floordiv(x+ldx,10000)-floordiv(x-ldx+9999,10000)+1;
  }
  cout<<ans<<endl;
  return 0;
}