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

int main() {
// long long int i,j,k,n,m,t,v,s,d;
 
  long double x,y,r;
 
 cin>>x>>y>>r;
 
 r+=1e-14;
 
 long long int sx=ceil(x-r),ex=floor(x+r);
  
 
 long long  int c=0;
  
  for(long long int i=sx;i<=ex;i++)
  {
  
     if(i>=x-r && i<=x+r)
     {
  
   long  double ystart,yend;
      
      ystart=y+sqrt(fabs(r*r-(x-i)*(x-i)));
      yend=y-sqrt(fabs(r*r-(x-i)*(x-i)));
      
    long long   int ys=floor(ystart),ye=ceil(yend);
      
      if(ys>ystart)
      ys--;
      if(ye<yend)
      ye++;
      
      if(ys>=ye)
      c+=ys-ye+1;
      
      
      
      
    //   if(ceil(ystart)!=ys && belongs(i,ceil(ystart),x,y,r))
    //   c++;
      
    //   if(floor(yend)!=ye && belongs(i,floor(yend),x,y,r))
    //   c++;
     }
      
  }
  
  cout<<c;
  
  
}

// #define ONLINE_JUDGE
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#ifndef ONLINE_JUDGE
#   define dbg(x) cerr << '#' << #x << '	' << x << endl
#   define TIME cerr << "RuningTime: " << clock() << "ms\n", 0
#else
#   define dbg(x)
#   define TIME 0
#endif
#define mem(a,b) memset(a,b,sizeof(a))
#define endl '\n'
const ll base = 1e4;

ll input(){
    string s; cin >> s;
    ll res = 0;
    bool flag = 0; // 标记是否遇到小数点
    int cnt = 0; // 记录小数点后位数
    for(auto i : s){
        if(i == '.'){
            flag = 1;
            continue;
        }
        res = res * 10 + (i - '0');
        if(flag) cnt++;
    }
    while(cnt < 4){
        res = res * 10;
        cnt++;
    }
    return res;
}

int main()
{
#ifndef ONLINE_JUDGE
    freopen("in.txt", "r", stdin);
    // freopen("out.txt", "w", stdout);
#endif
    ios::sync_with_stdio(0),cin.tie(0);
    ll x = input(), y = input(), r = input();
    dbg(x);
    ll lx = x - r, rx = x + r;
    while(lx % base != 0) lx++;
    while(rx % base != 0) rx--;
    ll uy = y, dy = y;
    while(uy % base != 0) uy++;
    while(dy % base != 0) dy--;

    ll ans = 0;
    for(ll i = lx; i <= rx; i += base){
        ll tmpx = abs(x - i);

        // uy下移
        while(tmpx * tmpx + (uy - y) * (uy - y) > r * r) uy -= base;
        // uy上移到上界+1
        while(uy <= y || tmpx * tmpx + (uy - y) * (uy - y) <= r * r) uy += base;

        // dy上移
        while(tmpx * tmpx + (y - dy) * (y - dy) > r * r) dy += base;
        // dy下移到下界-1
        while(dy >= y || tmpx * tmpx + (y - dy) * (y - dy) <= r * r) dy -= base;

        ans += (uy - dy + base - 2 * base) / base;

    }
    cout << ans;
}