English text is not available in this practice contest.
Automatic Cleaning Machine (ACM) 社は画期的な全自動円形掃除機 Intelligent Circular Perfect Cleaner(ICPC) を開発した. なんとこの ICPC は人がいない日中に自動で動き出し,自分が通り過ぎた場所のゴミを掃除する機能を備えている. 全自動という特性を活かすためにも ICPC の集塵機の容積を大きくし,人手でゴミを捨てる回数を減らしたい. しかしながら ICPC が大型化すればするほど ICPC が円形故に部屋の隅の掃除できない部分の面積も大きくなってしまう.(図G-1)
図G-1
また廊下の幅よりも大きくしてしまうと廊下を通ることができなくなってしまう.(図G-2)
図G-2
ACM 社は凄腕プログラマーのあなたに,部屋の見取り図とICPCの中心座標と半径からその部屋の中でICPCが掃除可能な面積を出力するプログラムの作成を依頼した.
入力は複数のデータセットからなり,各データセットは以下の形式をしている.
n x y r
x1 y1
x2 y2
...
xn yn
データセットの1行目には4つの整数 n , x , y , r が記されており,それぞれ部屋を構成する多角形の頂点数(3 ≤ n ≤ 20), ICPCの初期位置の中心座標 (-100 ≤ x , y ≤ 100), ICPCの半径 (1 ≤ r ≤ 100)を表している. 続く n 行には多角形の頂点の座標が反時計回りに記されており,以下の条件を満たす.
四つのゼロのみからなる行が入力の終わりを表す.
各データセットに対し,ICPCが掃除可能な領域の面積を1行に出力せよ.答えには10-6を超える誤差があってはならない.
4 5 5 1 0 0 10 0 10 10 0 10 8 5 5 1 0 0 9 0 9 1 10 1 10 9 9 9 9 10 0 10 12 25 5 1 0 0 10 0 10 4 20 4 20 0 40 0 40 10 20 10 20 5 10 5 10 10 0 10 0 0 0 0
99.1415926535897 96.7123889804 199.2321787