Design a site like this with WordPress.com
Get started

Validate the maze

There are many algorithms to generate maze. After generating the maze we’ve to validate whether it’s a valid maze or not. A valid maze has exactly one entry point and exactly one exit point (exactly 2 openings in the edges) and there must be atleast one path from the entry point to exit point.
Given a maze, just find whether the maze is “valid” or “invalid”.

Input

The first line consists of an integer t, the number of test cases. Then for each test case, the first line consists of two integers m and n, the number of rows and columns in the maze. Then contains the description of the matrix M of order mxn. M[i][j] = # represents a wall and M[i][j] = ‘.’ represents a space.

Output

For each test case find whether the maze is “valid” or “invalid”.

Constraints

1 <= t< = 10000

1 <= m< = 20

1 <= n< = 20

Sample

Input

6

4 4

####

#…

#.##

#.##

5 5

#.###

#..##

##..#

#.#.#

###.#

1 1

.

5 1

#

#

.

.

#

2 2

#.

.#

3 4

#..#

#.##

#.##

Output

valid

valid

invalid

valid

invalid

invalid

Advertisement

Author: alexishuuuocn

I'm a software engineer

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: