// R SAI KRISHNA 
#include <bits/stdc++.h>
#define for0(i, n) for (int i = 0; i < (ll)(n); ++i)
#define for1(i, n) for (int i = 1; i <= (ll)(n); ++i)
#define forc(i, l, r) for (int i = (ll)(l); i <= (ll)(r); ++i)
#define forr0(i, n) for (int i = (ll)(n) - 1; i >= 0; --i)
#define forr1(i, n) for (int i = (ll)(n); i >= 1; --i)
#define pb push_back
#define fi first  
#define debug(x) cout << #x << " -> " << x << endl;
#define endl '\n'
#define se second
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin, (x).rend()
#define tr(c,i) for(__typeof__((c)).begin() i = (c).begin(); i != (c).end(); i++)
#define present(c,x) ((c).find(x) != (c).end())
#define cpresent(c,x) (find(all(c),x) != (c).end())
#define sz(a) ll((a).size())
#define mod 1000000007
using namespace std;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef long long ll;
typedef vector<ll> vll;
typedef vector<vll> vvll;
typedef double ld; 

void debug_vec(vector<ll>&v){  
    cout << '[';
    for(auto i:v)cout << i << ", "; cout << "]";
    cout << "\n";
}   

void debug_set(set<ll>&st){  
    cout << "{";
    for(auto i:st)cout << i << ", ";
    cout << "}";
    cout << "\n";
} 


void fast()
{
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
} 

bool prime[1000001];
void sieve()
{
  memset(prime, true, sizeof(prime));
  prime[1]=false;
  for (int p=2; p*p<=1000000; p++)
  {
    if (prime[p] == true)
    {
        for (int i=p*p; i<=1000000; i += p)
                prime[i] = false;
    }
  }
} 

void print(bool f){ 
    if(f)cout << "YES\n"; 
    else cout << "NO\n";
}  

void google(int x){  
    cout << "Case #" << x << ": " ;
} 
void input_array(vector<ll>&arr){ 
    for(auto &i : arr){ 
        cin >> i;
    }
}
void solve()
{ 
    long double x,y,r; 
    cin >> x >> y >> r;   
    r += (1e-14);
    long double lx,rx,ly,ry; 
    lx = ceil(x - r); 
    rx = floor(x + r); 
    ll sum = 0;
    for(int i = lx ;i <= rx ; i++) {  
        long double res = ((long double)(sqrtl((long double)(r*r) - (long double)(x - i)*(x - i))));
        ll left_limit = ceil(y - res);
        ll right_limit = floor(y + res);
        sum += (ll)(right_limit - left_limit + 1) ;
    }
    cout << sum << endl;
} 

int main()
{
  fast();
  /*ll t;
  cin >> t;
  for(int tt = 1;tt <= t ;tt++)*/
  solve();

return 0;
}

#define _USE_MATH_DEFINES
#include <cstdio>
#include <iostream>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <complex>
#include <string>
#include <vector>
#include <array>
#include <list>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <bitset>
#include <numeric>
#include <limits>
#include <climits>
#include <cfloat>
#include <functional>
#include <iterator>
#include <memory>
#include <regex>
using namespace std;

const int MAX = 200000;
const int DECIMAL = 10000;

long long solve(long long cy, long long cx, long long r)
{
    cx = ((cx % DECIMAL) + DECIMAL) % DECIMAL;
    cy = ((cy % DECIMAL) + DECIMAL) % DECIMAL;

    long long ans = 0;
    for(int y=(cy+DECIMAL-1)/DECIMAL*DECIMAL; y<cy+r; y+=DECIMAL){
        long long left = cx;
        long long right = cx + r;
        while(left < right){
            long long x = (left + right + 1) / 2;
            long long dy = y - cy;
            long long dx = x - cx;
            if(dy * dy + dx * dx <= r * r)
                left = x;
            else
                right = x - 1;
        }
        ans += left / DECIMAL;
    }
    return ans;
}

int main()
{
    double cy0, cx0, r0;
    cin >> cx0 >> cy0 >> r0;

    long long cy = (long long)round(cy0 * DECIMAL);
    long long cx = (long long)round(cx0 * DECIMAL);
    long long r = (long long)round(r0 * DECIMAL);

    long long ans = 0;
    if(cx % DECIMAL == 0 && cy % DECIMAL == 0)
        ++ ans;

    for(int i=0; i<4; ++i){
        ans += solve(cy, cx, r);
        swap(cx, cy);
        cy *= -1;
    }
    cout << ans << endl;

    return 0;
}
