n が奇数の場合は(X + Y)が奇数の場所にしか行けない。
n が偶数の場合はどこへでも行ける。
サンプルの最初2個では、nが2と3。
BFSで行ける場所を出力してみたら気がついた。
近い位置だけBFSで調べた後に(X, Y)から(0, 0)へ山を登ると
X, Yの値の範囲が大きすぎてうまくいかない。
class MagicalGirlLevelOneDivOne { public: string isReachable(vector <int> J, int X, int Y) { for (int i = 0; i < (int)J.size(); ++i) { if (J[i] % 2 == 0) return "YES"; } return (X + Y) % 2 ? "NO" : "YES"; } };