Hamiltonian Tour Round B 2022 - Kick Start 2022
Problem
Hamilton is a Canadian city near Toronto, and a nice place to take a walking tour.
In this problem, Hamilton is represented by a grid of unit cells with rows and columns, where each cell is either empty (represented by *
) or contains a building (represented by #
). The cell on the -th row and -th column is represented by where and . It is not possible to enter cells containing buildings and you can only move to an adjacent cell that shares a side with the current cell (not just a corner). The grid is such that if it is divided evenly into blocks of unit cells, then in each of those blocks, either all four cells are empty, or all four cells are occupied by a building. Let us represent the block formed by and cells as where and .
Grace is a tourist in Hamilton and wants to visit all the empty cells in Hamilton. Grace is currently in cell . Visiting the same cell twice could be boring for her. Hence, Grace wants to visit each of the empty cells exactly once and finally end in cell . Can you help Grace by providing a string (consisting of directional moves {N
, E
, S
, W
} representing the unit moves to the north, east, south, or west respectively) which Grace can follow to visit every empty cell once and end again in .
Input
The first line of the input gives the number of test cases, . test cases follow.
The first line of each test case contains two integers and .
The next lines of each test case contains characters each.
The -th character on the -th of these lines represents the block formed by the following four cells: and .
If #
, all four of the cells in are occupied by a building.
Otherwise, if *
, all four of the cells in are empty.
Output
For each test case, output one line containing Case #:
, where is the test case number (starting from 1) and is the answer to the problem as follows.
If there is no solution to the problem, should be IMPOSSIBLE
. Otherwise, should be a sequence of characters from the set {N
, E
, S
, W
}, representing the unit moves (to the north, east, south, or west respectively) in a valid route, starting from , as described in the statement above.
Note that your last move should take you to ; this move does not count as visiting the same cell twice.
If there are multiple valid solutions, you may output any one of them.
Limits
Time limit: 25 seconds.
Memory limit: 1 GB.
.
.
.
All characters in the grid are from the set {#
,*
}.
The first character of the first line of the input grid for each test case is a *
character, i.e. *
.
Test Set 1
A block contains buildings if and only if the row number and column number of it are divisible by 2. i.e. #
and .
Test Set 2
No extra constraints.
Sample
Note: there are additional samples that are not run on submissions down below.3 1 1 * 2 2 ** *# 3 4 **** *#*# ****
Case #1: SENW Case #2: SSSENNEENWWW Case #3: ESSSSEEENNNWWNEEEEESWWSSSEESWWWWWWWNNNNN
The sample output displays one set of answers to the sample cases. Other answers may be possible.
In Sample Case #1, Grace will follow the route , , , , and finally . Note that ESWN
is the only other possible valid answer.
The image below shows one of the possible routes for Sample Case #1.
The image below shows one of the possible routes for Sample Case #2.
Additional Sample - Test Set 2
The following additional sample fits the limits of Test Set 2. It will not be run against your submitted solutions.3 3 1 * * # 1 3 *#* 3 4 **#* **#* ****
Case #1: SSSENNNW Case #2: IMPOSSIBLE Case #3: ESSSSENNNNESSSSEEENNNNESSSSSWWWWWWWNNNNN
The image below shows one of the possible routes for Sample Case #1.
In Sample Case #2, it is impossible for Grace to travel to any cell in from .
No comments:
Post a Comment