TopcoderArchiveVisit Topcoder
SRM25 May 2011
SRM 525

RainyRoad

Problem statement, definition, constraints, and public examples.

Problem Statement

Fox Ciel is going to take a path to meet her friends. The path is tiled with 1x1 square tiles. It is N tiles long and 2 tiles wide. If we imagine that the path is going from the left to the right, we can view it as a rectangle with 2 rows and N columns of tiles. The rows of the path are numbered 0 to 1 from top to bottom, and the columns of the path are numbered 0 to N-1 from left to right. Ciel starts at the tile in row 0, column 0. She has to reach the tile in row 0, column N-1.

In each step, Ciel can move to an adjacent tile. Two tiles are adjacent if they share at least one point (a side or a corner).

Because it rained yesterday, some tiles are covered by puddles of water. Ciel will not step on these tiles. You are given a String[] road. The j-th character of i-th element is 'W' if a tile at i-th row of j-th column is covered by water, and '.' otherwise.

Return the String "YES" if she can move to her destination without entering a tile which is filled with water. Otherwise, return "NO".

Definition

Class:
RainyRoad
Method:
isReachable
Parameters:
String[]
Returns:
String
Method signature:
String isReachable(String[] road)
(be sure your method is public)

Notes

  • The constraints guarantee that the starting tile and the destination tile are never covered by water.

Constraints

  • road will contain exactly 2 elements.
  • Each elements of road will contain between 2 and 50 characters, inclusive.
  • All elements of road will contain the same number of characters.
  • Each character of road will be either '.' or 'W'.
  • The first character and the last character of 0-th element of road will be '.'.

Examples

  1. {".W.."
    ,"...."}
    Returns: "YES"
    One of the possible ways is as follows. Here, 'F' is the tile occupied by Fox Ciel. "FW.." "...." ".W.." "F..." ".W.." ".F.." ".W.." "..F." ".W.F" "...."
  2. {".W.."
    ,"..W."}
    Returns: "YES"
  3. {".W..W.."
    ,"...WWW."}
    Returns: "NO"
  4. {".."
    ,"WW"}
    Returns: "YES"
  5. {".WWWW."
    ,"WWWWWW"}
    Returns: "NO"
  6. {".W.W.W."
    ,"W.W.W.W"}
    Returns: "YES"
  7. {".............................................W."
    ,".............................................W."}
    Returns: "NO"
Back to all problems