SRM 525 Easy RainyRoad

問題

2*Nのマップ上の(0, 0)地点から(0, N)地点まで行きたい.
いくつかの地点は水たまりがあって,その地点は通れない.
(0, 0)地点から(0, N)地点まで行けるかどうかを判定せよ.
移動は上下左右斜めも行ける.

解答

斜めもいけるので水たまりが連続して並ぶ時(0, i), (1, i)の時,移動できなくなるのでこのような並びがあるのかどうかを見つける.

class RainyRoad
{
public:
  string isReachable(vector <string> road)
    {
      int n = road[0].size();
      if (road[0][n-1] == 'W' || road[0][0] == 'W') return "NO";
      for(int i = 0; i < n; i++){
        if (road[0][i] == 'W' && road[1][i] == 'W') return "NO";
      }
      return "YES";
    }
};