UVa10466 How Far?

問題文
http://uva.onlinejudge.org/external/104/10466.html

概要
一つの恒星の周りを惑星が周り、その惑星を別の惑星が衛星のように周わることが繰り返し続く惑星系がある。この惑星系で、それぞれの惑星は二次元上の円を成して周わる。N個の惑星が存在するとき、各の惑星と恒星との間の距離を求めよ。

ポイントと解法

  • テストケースはEOFまでいくつも与えられる。サンプルが一つの入力だけなので気づきにくい。
  • 角度は順に加えていかずに、大域座標系のX軸を基準とする。何故そうしなければならないかはわからないが、そうすると通る。
  • ベクトル演算などする必要はない。(自分がしてしまったので太字)
    x += R*cosθ, y += R*sinθ と、順に座標を更新し、逐次結果を出力するのみ。

反省
(特にUVaなどで)解法に詰まったとき、別の策を仮定して試してみることがある。そのとき試行の回数だけ変更点をメモしていくとよい。別の問題があることに気づいたとき、その問題の修正と前の解法の組み合わせで通るのに、この組み合わせの試行を忘れてしまうという事態が起こる。