#include #include using namespace std; int x, y, r; int main() { cin >> x >> y >> r; if ( x == 0 || y == 0 ) { int t = r * sqrt(2.0) + 1; cout << t << endl; return 0; } x = (x>0)?x:-x; y = (y>0)?y:-y; //(0,0)-(x,y)で直線を引く。この時の交点の内遠い方の距離が最も(0, 0)から遠い点。 //半径をぶった切るので最も遠い点までの距離は「(x, y)までの長さ + 半径」となる。 //ユーグリッド距離が大きいほどマンハッタン距離も大きくなっている感じがするので、適当にやる。 double EPS = 1e-9; double X = x + r * (double)x/sqrt((double)x*x + y*y) - EPS; double Y = y + r * (double)y/sqrt((double)x*x + y*y) - EPS; int T = X + Y + 1; //cout << X << " " << Y << endl; cout << T << endl; return 0; }