水以下コンテスト
コンテスト日時
2024/03/30 (Sa) 14:00 - 17:05

E - Range Rotate Query

Ceylon
2
s
1024
MB
100

問題文

二次元平面上に NN 個の点があり、 ii 番目の点 (1iN)(1 \leq i \leq N) は始め座標 (Xi,Yi)(X_i, Y_i) にあります。
QQ 個のクエリが与えられるので、それぞれについて答えてください。
与えられるクエリは以下の 22 種類です。

  • 1 l r θ : 原点からのユークリッド距離が l\sqrt{l} 以上 r\sqrt{r} 以下の全ての点を、原点中心に反時計回りに θ\theta 度だけ回転移動させる。
  • 2 a b c : aa 番目の点と bb 番目の点と cc 番目の点を頂点とする、三角形の面積を出力する。

ここで、原点からのユークリッド距離は、原点 (0,0)(0, 0) と点 (x,y)(x, y) に対し、この 22 点間の距離が x2+y2\sqrt{x^2 + y^2} であるものとして定められています。

ただし、三角形が退化している (33 つの頂点が同一直線上にある) 場合、その面積は 00 であるとします。

制約

  • 3N1053 \leq N \leq 10^5
  • 105Xi,Yi105-10^5 \leq X_i, Y_i \leq 10^5
  • ij(Xi,Yi)(Xj,Yj)(1i,jN)i \ne j \Longrightarrow (X_i, Y_i) \ne (X_j, Y_j) \enspace (1 \leq i, j \leq N)
  • 1Q500001 \leq Q \leq 50000
  • 0lr2×10100 \leq l \leq r \leq 2 \times 10^{10}
  • 0θ<3600 \leq \theta \lt 360
  • 1a<b<cN1 \leq a < b < c \leq N
  • 入力は全て整数

部分点

以下の条件を満たすテストケースにすべて正解したとき、記載された点数が与えられる。

  1. (20点) N100,  Q1000,  N \leq 100, ~~ Q \leq 1000, ~~ 2 a b c のクエリのみ与えられる
  2. (20点) N100,  Q1000N \leq 100, ~~ Q \leq 1000
  3. (60点) 追加の制約なし

入力

入力は以下の形式で標準入力から与えられる。ここで、 queryk\mathrm{query}_kkk 番目のクエリである。

NN
X1X_1Y1Y_1
\vdots
XNX_NYNY_N
QQ
query1\mathrm{query}_1
\vdots
queryQ\mathrm{query}_Q

各クエリは以下の形式で与えられる。

11llrrθ\theta

22aabbcc

出力

問題文の指示に従ってクエリへの答えを改行区切りで出力せよ。

ただし、ジャッジの出力との相対誤差または絶対誤差が 10610^{-6} 以下だった場合、正解と判定される。

入力例 1
5 0 0 3 1 -5 3 10 -6 -14142 -1356 4 2 1 2 3 2 1 3 4 2 2 3 4 2 3 4 5
出力例 1
7.0 0.0 21.0 73809.0

例えば、 11 番目のクエリについて、

  • 11 番目の点の座標は (0,0)(0, 0) です。
  • 22 番目の点の座標は (3,1)(3, 1) です。
  • 33 番目の点の座標は (5,3)(-5, 3) です。

これら 33 つの頂点からなる三角形の面積は 77 です。

入力例 2
6 0 0 2 2 0 3 4 -5 31415 92653 -9982 -44353 8 2 1 2 3 1 0 8 45 2 1 2 3 2 2 3 4 1 9 41 165 2 2 3 4 1 1234 3141592653 270 2 4 5 6
出力例 2
3.0 0.0 0.3431457505076194 8.535898384862243 2211183117.39239

例えば、22 番目のクエリについて、

  • 原点からのユークリッド距離が 0 (=0)\sqrt{0} ~ (= 0) 以上 8 (=22)\sqrt{8} ~ (= 2\sqrt{2}) 以下の全ての点を反時計回りに 4545 度回転移動させます。
    11 番目の点 と 22 番目の点が該当し、それぞれ (0,0)(0,0)(0, 0) \to (0, 0)(2,2)(0,22)(2, 2) \to (0, 2\sqrt{2}) と移動します。

また、 33 番目のクエリについて、

  • 11 番目の点の座標は (0,0)(0, 0) です。
  • 22 番目の点の座標は (0,22)(0, 2\sqrt{2}) です。
  • 33 番目の点の座標は (0,3)(0, 3) です。

これら 33 つの頂点からなる三角形の面積は 00 です。(退化している三角形の面積が 00 であることに注意してください。)