QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#1196. 楽しい領域

Statistics

Ciel 博士は、多角形の海岸線を持つ平面上の島に住んでいます。彼女は島でらせん状の経路に沿って散歩するのが大好きです。ここで、次の両方を満たす経路をらせん状と呼びます。

  • 経路は自己交差のない単純な平面折れ線です。

  • すべての頂点で、線分の向きが時計回りに曲がります。

下に 4 本の経路を示します。丸印は出発点を、矢印の先端は経路の到着点を表します。これらの経路のうち、らせん状なのは一番左の経路だけです。

problem_1196_cf701760616e3bfd81e089fed289c4fe.png

Ciel 博士は、島の海岸線のすべての頂点について、その点から出発し、その頂点で終わり、海岸線を横切らないらせん状の経路が存在するなら、その点を楽しい点とみなします。ここで、らせん状の経路は海岸線に接したり重なったりしてもかまいません。

次の図では、外側の多角形が海岸線を表します。星印の点は楽しい点ですが、十字印の点は楽しい点ではありません。星印から始まる点線の折れ線は、海岸線の頂点で終わる有効ならせん状の経路です。

problem_1196_52f14d8731352232cdc93aa21240b90d.png

すべての楽しい点の集合は、空である可能性もある連結な領域をなすことが証明できます。この領域を楽しい領域と呼びます。海岸線が与えられたとき、楽しい領域の面積を計算するプログラムを作成してください。

入力

入力の最初の行には、海岸線を表す多角形の頂点数を表す整数 $n$ が含まれます($3 \le n \le 2000$)。続く $n$ 行にはそれぞれ 2 つの整数 $x_i$ と $y_i$ が含まれ、反時計回りの順に多角形の $i$ 番目の頂点の座標 $(x_i,y_i)$ を表します。$x_i$ と $y_i$ はともに $0$ 以上 $10^4$ 以下です。座標系の $x$ 軸は右向き、$y$ 軸は上向きです。多角形は単純であり、自分自身と交差したり接したりしません。多角形は凸とは限りません。各頂点の内角がちょうど $180$ 度ではないことが保証されます。

出力

楽しい領域の面積を 1 行に出力してください。$10^{-7}$ 未満の絶対誤差または相対誤差が許容されます。

入出力例

入力 1

4
10 0
20 10
10 30
0 10

出力 1

300.00

入力 2

10
145 269
299 271
343 193
183 139
408 181
356 324
176 327
147 404
334 434
102 424

出力 2

12658.3130191

入力 3

6
144 401
297 322
114 282
372 178
197 271
368 305

出力 3

0.0

注記

下の図は、与えられた 3 つの例を可視化したものです。外側の多角形は島の海岸線に対応します。楽しい領域は灰色で示されています。

problem_1196_545a943af673d62e792d21846d008699.png

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.