D - 地図が2枚 Editorial

Time Limit: 2 sec / Memory Limit: 256 MB

問題

2枚の異なる縮尺の日本地図を重ねると,同じ地点が重なる点が必ずできる.

地図 A とそれを縮小した地図 A' を用意し, A' を A からはみ出さないように置く. そうすると, A の点 p と, A' で p に対応する点 p' が同じ位置にくるような p がただ一つ存在するのである!

凸多角形の地図 A と,それを半分に縮小&回転&平行移動してもとの地図に真におさまるようにした地図 A' が,二次元空間の座標で与えられる. 地図 A でも A' でも同じ地点(上の p と p')を示しているような点の座標を求めよ.


右の状態で2つの地図が与えられる.赤い点が求める点.

入力Copy

Copy
nn
x11x_{11} y11y_{11}
......
x1nx_{1n} y1ny_{1n}
x21x_{21} y21y_{21}
......
x2nx_{2n} y2ny_{2n}

1行目に多角形の頂点数 nn が与えられる. 続く nn 行に大きい多角形の頂点座標が反時計回りで与えられる. 続く nn 行に縮小後の多角形の頂点座標が反時計回りで与えられる. (x1kx_{1k}, y1ky_{1k}) は (x2kx_{2k}, y2ky_{2k}) に対応している.

出力

求める点の座標を xx, yy の順で空白で区切って1行に出力せよ.絶対誤差 10610^{-6} まで許容する.

制約

  • 地図は自己交差のない凸な単純多角形と仮定してよい.
  • 縮小後の多角形の座標はすべて元の多角形の内部にある.
  • 縮小は常に1/2倍
  • 3n203 \leq n \leq 20.
  • 0x1k,y1k,x2k,y2k1000 \leq x_{1k}, y_{1k}, x_{2k}, y_{2k} \leq 100.
  • 縮小前の多角形の辺の長さは全て1以上と仮定してよい.
  • 縮小後の多角形の座標は,実際の座標を小数点以下9桁で打ち切ったものが与えられる.

部分点

この問題の判定には,50点分のテストケースのグループが設定されている. このグループに含まれるテストケースの入力は以下の条件を満たす.

  • n=4n = 4
  • (x11,y11)=(0,0)(x_{11},y_{11}) = (0,0)
  • (x12,y12)=(100,0)(x_{12},y_{12}) = (100,0)
  • (x13,y13)=(100,100)(x_{13},y_{13}) = (100,100)
  • (x14,y14)=(0,100)(x_{14},y_{14}) = (0,100)
  • (x22,y22)=(x21+50,y21)(x_{22},y_{22}) = (x_{21}+50,y_{21})
  • (x23,y23)=(x21+50,y21+50)(x_{23},y_{23}) = (x_{21}+50,y_{21}+50)
  • (x24,y24)=(x21,y21+50)(x_{24},y_{24}) = (x_{21},y_{21}+50)

入力例 1Copy

Copy
4
0 0
100 0
100 100
0 100
25 25
75 25
75 75
25 75

入力例 1 に対する出力例Copy

Copy
50.000000000 50.000000000

入力の多角形の図.赤い点が (x11,y11)(x_{11}, y_{11}) で青い点が (x21,y21)(x_{21}, y_{21}) に対応する.

入力例 2Copy

Copy
4
0 0
100 0
100 100
0 100
0.5 1.5
50.5 1.5
50.5 51.5
0.5 51.5

入力例 2 に対する出力例Copy

Copy
1.000000000 3.000000000

入力例 3Copy

Copy
8
2.0 1.0
3.0 1.0
4.0 2.0
4.0 3.0
3.0 4.0
2.0 4.0
1.0 3.0
1.0 2.0
2.9 1.3
3.3 1.6
3.4 2.3
3.1 2.7
2.4 2.8
2.0 2.5
1.9 1.8
2.2 1.4

入力例 3 に対する出力例Copy

Copy
3.0 2.0


2025-04-05 (Sat)
00:07:46 +00:00