SRM514 Div1 Easy(250) MagicalGirlLevelOneDivOne
(n,1), (-n,1)と跳ぶことで、上下左右に2マス移動することができるので、(偶,偶), (偶,奇), (奇,偶), (奇,奇)のマスに行くことが可能か考えれば良い。初期位置なので、(偶,偶)は可能。nが偶数ならば(1,n)→(1,n)、nが奇数ならば(1,n)と跳ぶことで、(奇,奇)も可能。(遇,奇)と(奇,遇)はnが偶数ならば可能だが、奇数の場合は不可能。
#include <string> #include <vector> using namespace std; class MagicalGirlLevelOneDivOne{public: string isReachable( vector <int> jumpTypes, int x, int y ) { bool f = false; for ( int i=0; i<(int)jumpTypes.size(); i++ ) if ( jumpTypes[i]%2 == 0 ) f = true; return f || (x+y)%2==0 ? "YES" : "NO"; }};