{"trustable":true,"prependHtml":"\u003cstyle type\u003d\"text/css\"\u003e\n #problem-body \u003e pre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333;\n background: rgba(255, 255, 255, 0.5);\n border: 1px solid #ccc;\n border-radius: 6px;\n }\n\u003c/style\u003e\n","sections":[{"title":"","value":{"format":"HTML","content":"\u003cdiv id\u003d\"problem-body\"\u003e\n\t\u003cp\u003eThere are many algorithms to generate maze. (\u003ca href\u003d\"//en.wikipedia.org/wiki/Maze_generation_algorithm\"\u003e//en.wikipedia.org/wiki/Maze_generation_algorithm\u003c/a\u003e). 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 at least one path from the entry point to exit point.\u003c/p\u003e\r\n\u003cp style\u003d\"text-align: center;\"\u003e\u003cimg src\u003d\"CDN_BASE_URL/84542e7f4cbd51b039eaf25b7ebb5908?v\u003d1715481395\" alt\u003d\"\" width\u003d\"300\" height\u003d\"300\"\u003e\u003c/p\u003e\r\n\u003cp\u003eGiven a maze, just find whether the maze is \"valid\" or \"invalid\".\u003c/p\u003e\r\n\u003ch3\u003eInput\u003c/h3\u003e\r\n\u003cp\u003eThe 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]\u003d# represents a wall and M[i][j]\u003d\u0027.\u0027 represents a space.\u003c/p\u003e\r\n\u003ch3\u003eOutput\u003c/h3\u003e\r\n\u003cp\u003eFor each test case find whether the maze is \"valid\" or \"invalid\".\u003c/p\u003e\r\n\u003ch3\u003eConstraints\u003c/h3\u003e\r\n\u003cp\u003e1\u0026lt;\u003dt\u0026lt;\u003d10000\u003c/p\u003e\r\n\u003cp\u003e1\u0026lt;\u003dm\u0026lt;\u003d20\u003c/p\u003e\r\n\u003cp\u003e1\u0026lt;\u003dn\u0026lt;\u003d20\u003c/p\u003e\r\n\u003ch3\u003eExample\u003c/h3\u003e\r\n\u003cdiv\u003e\u003ctable class\u003d\"vjudge_sample\"\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e6\r\n4 4\r\n####\r\n#...\r\n#.##\r\n#.##\r\n5 5\r\n#.###\r\n#..##\r\n##..#\r\n#.#.#\r\n###.#\r\n1 1\r\n.\r\n5 1\r\n#\r\n#\r\n.\r\n.\r\n#\r\n2 2\r\n#.\r\n.#\r\n3 4\r\n#..#\r\n#.##\r\n#.##\r\n\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003evalid\r\nvalid\r\ninvalid\r\nvalid\r\ninvalid\r\ninvalid\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e"}}]}