AtCoder Beginner Contest 243 C問題 Collision 2
問題
提出解答
問題の概要
人の人が座標平面上の異なる地点におり, 番目の人は にいる. また, それぞれの人は右か左を向いており,
- ならば右を向いている
- ならば左を向いている
確認が同じ速さで等速直線移動しはじめたとき, 衝突は発生するか?
制約
- は からなる長さ の文字列
解法
衝突が発生することの必要十分条件は以下である.
次を満たすような2つの整数 が存在する.
実はこれらは以下とも同値である.
次を満たすような整数 が存在する.
上の条件を満たすような の候補は に限られるため, 各 座標と向きごとに 座標の最大値や最小値を記録することにより判定できる.
辞書を用いて最大値や最小値を保存することにより, 時間計算量 で判定できた.