はまやんはまやんはまやん

hamayanhamayan's blog

Tag [東京海上日動 プログラミングコンテスト2020 B]

https://atcoder.jp/contests/tokiomarine2020/tasks/tokiomarine2020_b

解説

https://atcoder.jp/contests/tokiomarine2020/submissions/14258873

シミュレーションしていけばいい。
鬼は子供に常に向かうように移動すればいいし、子供は鬼から逃げるように移動すればいい。
これはどちらも同じ方向になる。

自分は実装を簡単にするために、この移動方向を常に数直線の正の方向にしている。
鬼≦子供であれば、移動方向は正の方向であるが、鬼>子供なら負の方向なので、
その場合は、原点で反転させることで、位置関係を変えずに移動方向を逆にしている。

あとは、鬼・子供がT秒語にどこにいるかというのを計算して、鬼が子供を追い越していれば、
時刻Tまでに捕まえられるので、それを判定する。

ll A, V, B, W, T;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> A >> V >> B >> W >> T;
    if (A > B) A *= -1, B *= -1;
    A += V * T;
    B += W * T;

    if (B <= A) cout << "YES" << endl;
    else cout << "NO" << endl;
}