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";
}
};