|
2013年12月15日
情報オリンピック日本委員会
|
二つの交差点間を移動するために通らなければならない道の本数を, 1 番目と 2 番目の観光スポットの間,2 番目と 3 番目の観光スポットの間 ... N-1 番目と N 番目の観光スポットの間について求め,それらを足せば良い.
現在地を交差点 ( Xs, Ys ),目的地を交差点 ( Xt, Yt ) とし,Xs と Xt の差を Distx, Ys と Yt の差を Disty とする.以下のような4つのケースに分けて考える.境界にあるケースについては,いずれか1つのみに含めれば良い.
ケース 1 : 目的地が現在地の南東にある
斜めの道を使っても意味がないので,単に Distx と Disty を足せば良い.
ケース 2 : 目的地が現在地の北東にある
Distx か Disty のいずれかが 0 になるまで斜めの道を使い,その後は縦または横の道を使えば良い.すなわちこのケースでは,Distx と Disty の和から Distx と Disty の小さい方を引けば良い.これは,Distx と Disty の大きい方の値と一致する.
ケース 3 : 目的地が現在地の南西にある
ケース 2 と同様である.
ケース 4 : 目的地が現在地の北西にある
ケース 1 と同様である.