Statistics

Problem Statement for "ParkPlace"

Problem Statement

There is a square-shaped park which is subdivided into N * N unit square cells.


The edges of the park are going in the north-south and east-west directions. We will assign two coordinates (row, column) to each cell in such a way that row numbers grow from the north to the south and column numbers grow from the west to the east.


You are given the String[] place that describes the layout of the park. More precisely, the character place[r][c] describes the cell (r, c). In this park, each cell is either a tree (denoted '#') or grass (denoted '.').


We would like to make our park more attractive to visitors by building walkways. The walkways must be built according to the following rules:

  • A walkway cannot enter a tree cell.
  • Each grass cell must be crossed by exactly one walkway.
  • For each grass cell, the walkway must enter the cell through one edge (not through a corner) and leave the cell through some other edge.
  • Walkways cannot cross the boundary of the park.

Note that the above rules imply that in any valid layout of the park the walkways will form a collection of disjoint cycles that, taken together, cover all the grass cells.


Write a program to find if it is possible to design such a collection of walkways. If it is, construct any one such layout and return its description. The way to return the answer is as follows:

  • If it's not possible to place the walkways according to the rules, return an empty String[].
  • If there's at least one valid solution, choose any one such solution. Then, return a String[] with length equal to the number of cycles your walkways form. Each element of the return value will describe one of these cycles. More precisely:
    • Each element should have the form "R C movements".
    • "R" and "C" should be the coordinates (row, column) of any one cell on the walkway.
    • Finally, "movements" should be a string in which each character is 'N', 'E', 'S', or 'W'. This string represents a sequence of movements that will walk along the cycle, visiting each cell once and then ending in the cell (R, C) where you started.
    For example, "5 8 NNEESWSW" represents the 8-cell cycle of (5, 8) - (4, 8) - (3, 8) - (3, 9) - (3, 10) - (4, 10) - (4, 9) - (5, 9) - (5, 8).
    Note that the return value must not contain any extra characters. This includes extra spaces in "movements" and extra leading zeros in "R" and "C".

Definition

Class:
ParkPlace
Method:
construct
Parameters:
int, String[]
Returns:
String[]
Method signature:
String[] construct(int N, String[] place)
(be sure your method is public)

Constraints

  • N will be between 1 and 30, inclusive.
  • The length of array place will be exactly N.
  • All lengths of strings place[0], place[1],..., place[N-1] will have length exactly N.
  • place[i][j] will be either '#' or '.'.
  • At least one cell will be grass. In other words, at least one place[i][j] will be '.'.

Examples

  1. 4

    { "#..#" , "...." , "...." , "#..#" }

    Returns: {"0 1 ESESWSWNWNEN" }

    In this example, the only answer is to make one big cycle through all cells of grass. The the form of cycle will be (0, 1) - (0, 2) - (1, 2) - (1, 3) - (2, 3) - (2, 2) - (3, 2) - (3, 1) - (2, 1) - (2, 0) - (1, 0) - (1, 1) - (0, 1). So, there are 12 * 2 = 24 possible return values testcase: you can pick any cell as your starting cell, and then one of two possible directions in which to walk around the cycle. You may return any of these descriptions.

  2. 4

    { "...." , "..#." , ".#.." , "...." }

    Returns: { }

    In this example, it is impossible to build the walkways so that each connected part forms a cycle. Thus, you need to return an empty array of strings.

  3. 5

    { "....." , "....." , "..#.." , "....." , "....." }

    Returns: {"0 0 EEEESSWNWWSWNN", "3 0 ESWN", "3 2 EESWWN" }

    In this example, there are many ways to build walkways that satisfy the conditions. You can make one big cycle, but other formations are also possible. Few examples of way of building walkways are as follows. In each example, the cells marked with the same letter belong to the same cycle. AAAAA AAAAA AAABB AABBB AAAAA AAAAA AAAAA ABBBA AAABB AABBB AAAAA AAAAA AA#AA AB#BA DD#BB AA#CC BB#CC AA#AA AAAAA ABBBA DDCCC DDDCC BBBCC BBCCC AAAAA AAAAA DDCCC DDDCC BBBCC BBCCC

  4. 6

    { "......" , "...#.." , ".#...." , "....#." , "......" , "......" }

    Returns: { }

  5. 6

    { "......" , "....#." , "..#..." , "...#.." , ".#...." , "......" }

    Returns: {"0 0 EEEEESSSWNWNWWSWNN", "3 0 EESSWWNN", "4 3 EESWWN" }

  6. 16

    { "................" , "................" , ".####.####.####." , ".####.####.####." , ".#..#.#..#.#..#." , ".#..#.#..#.#..#." , ".#..#.#..#.#..#." , ".#..#.####.####." , "....#.####.####." , "....#.#..#.#..#." , "....#.#..#.#..#." , "....#.#..#.#..#." , "....#.####.####." , "....#.####.####." , "................" , "................" }

    Returns: {"0 0 ESENESENEESWSSSSSSSSSSSSSESWWNWSWWWNEENENWWSWNNENWNEEENWWWNNNNNNNN", "0 7 ESWN", "0 9 EESENESENESSSSSSSSSSSSSSSWNWSWNWSWWNENNNNNNNNNNNNNWN", "4 2 ESWN", "4 7 ESSWNN", "4 12 ESSWNN", "6 2 ESWN", "9 7 ESSWNN", "9 12 ESSWNN", "10 2 ESWN", "14 7 ESWN" }

    Happy SRM 788!

  7. 1

    { "." }

    Returns: { }

  8. 2

    {"..", ".."}

    Returns: {"0 0 ESWN" }

  9. 2

    {"..", "##"}

    Returns: { }

  10. 3

    {"...", "###", "..."}

    Returns: { }

  11. 3

    {".#.", "...", "#.#"}

    Returns: { }

  12. 3

    {"...", ".#.", "..."}

    Returns: {"0 0 EESSWWNN" }

  13. 8

    {"........", ".#.##.#.", ".#.##.#.", ".#.##.#.", ".#.##.#.", ".#.##.#.", ".#.##.#.", "........"}

    Returns: { }

  14. 8

    {"........", ".##..##.", ".##..##.", ".##..##.", ".##..##.", ".##..##.", ".##..##.", "........"}

    Returns: {"0 0 EEEEEEESSSSSSSWWWWWWWNNNNNNN", "1 3 ESWN", "3 3 ESWN", "5 3 ESWN" }

  15. 8

    {"........", "........", ".#.##.#.", ".#.##.#.", ".#.##.#.", ".#.##.#.", "........", "........"}

    Returns: { }

  16. 8

    {"........", "........", "........", ".#.##.#.", ".#.##.#.", "........", "........", "........"}

    Returns: {"0 0 EESENEESWSWWSSSWWNNNENWN", "0 6 ESWN", "2 5 EESSSWWNNN", "5 3 ESEEESWWWWWWWNEEEN" }

  17. 8

    {"........", "........", "...##...", ".#.##.#.", ".#.##.#.", "...##...", "........", "........"}

    Returns: {"0 0 EESWWN", "0 3 ESWN", "0 5 EESWWN", "2 0 EESSSWWNNN", "2 5 EESSSWWNNN", "6 0 EESWWN", "6 3 ESWN", "6 5 EESWWN" }

  18. 8

    {"........", "...##...", "...##...", ".#.##.#.", ".#.##.#.", "...##...", "...##...", "........"}

    Returns: { }

  19. 27

    {"..###..#...#####..##...####", "..###..#...#..##..##...##..", "############..##..##..###..", "###########################", "#..#...#...#####..###..#..#", "#..#...#.#.#...#...#...#..#", "#..##..#...#...#...#...####", "###########################", "#..#...#####..##...######..", "#..#...#..##..##...##..##..", "########..##..##..###..##..", "###########################", "...#...#####..###..#..###..", "...#.#.#...#...#...#..###..", "#..#...#...#...#...########", "###########################", "...#####..##...######..#...", "...#..##..##...##..##..#...", "####..##..##..###..##..##..", "###########################", "...#####..###..#..###..#...", ".#.#...#...#...#..###..#...", "...#...#...#...############", "###########################", "####..##...######..#...#...", "..##..##...##..##..#...#.#.", "..##..##..###..##..##..#..."}

    Returns: {"0 0 ESWN", "0 5 ESWN", "0 8 EESWWN", "0 16 ESSWNN", "0 20 EESWSWNN", "1 12 ESWN", "1 25 ESWN", "4 1 ESSWNN", "4 4 EESSWNWN", "4 8 EESSWWNN", "4 16 ESESWWNN", "4 21 ESSWWNEN", "4 24 ESWN", "5 12 EESWWN", "8 1 ESWN", "8 4 EESWWN", "8 12 ESSWNN", "8 16 EESWSWNN", "8 25 ESSWNN", "9 8 ESWN", "9 21 ESWN", "12 0 EESSWNWN", "12 4 EESSWWNN", "12 12 ESESWWNN", "12 17 ESSWWNEN", "12 20 ESWN", "12 25 ESWN", "13 8 EESWWN", "16 0 EESWWN", "16 8 ESSWNN", "16 12 EESWSWNN", "16 21 ESSWNN", "16 24 EESSWNWN", "17 4 ESWN", "17 17 ESWN", "20 0 EESSWWNN", "20 8 ESESWWNN", "20 13 ESSWWNEN", "20 16 ESWN", "20 21 ESWN", "20 24 EESWWN", "21 4 EESWWN", "24 4 ESSWNN", "24 8 EESWSWNN", "24 17 ESSWNN", "24 20 EESSWNWN", "24 24 EESSWWNN", "25 0 ESWN", "25 13 ESWN" }

  20. 29

    {"..####..##...####..##...#....", "..####..##...####..##...#....", "#############################", "#############################", "#############################", "#####..###...####..#....#####", "..###..###...##....#....##..#", "..###..###..###..###..####..#", "#############################", "#############################", "#..##...###...#....#...######", "#..##...###...#....#.#.##...#", "#..###..###..###..##...##...#", "#############################", "#############################", "..####..##....##...########..", "...##...##.#..#....###..###..", "...##...##...##...####..###..", "#############################", "#############################", "#...#..###....##...#....#####", "#...#....#....##.#.#..#.##...", "##..###..###..##...##...##...", "#############################", "#############################", "#..####..#...##....##...#...#", "#...##...#....#.##.#..#.#.#..", "#...##...##...#....#....#....", "#############################"}

    Returns: {"0 0 ESWN", "0 6 ESWN", "0 10 EESWWN", "0 17 ESWN", "0 21 EESWWN", "0 25 EEESWWWN", "5 5 ESSWNN", "5 10 EESWSWNN", "5 17 ESWN", "5 20 EEESWWSWNN", "6 0 ESWN", "6 15 ESWN", "6 26 ESWN", "10 1 ESSWNN", "10 5 EESSWNWN", "10 11 EESWSWNN", "10 15 EEESWSWNWN", "10 20 EESSWWNN", "11 25 EESWWN", "15 0 ESESWWNN", "15 6 ESSWWNEN", "15 10 EEESWSWWNN", "15 16 EESWSWWNEN", "15 27 ESSWNN", "16 22 ESWN", "20 1 EESSWNWN", "20 5 ESWN", "20 10 EEESSWNWWN", "20 16 EESSWWNN", "20 20 EEESSWWNWN", "21 7 ESWN", "21 26 EESWWN", "25 1 ESESWWNN", "25 7 ESSWWNEN", "25 10 EESESWWNWN", "25 15 EEESSWWWNN", "25 21 EESSWWWNEN", "25 25 EESESWWWNN" }

  21. 29

    {"#####..####..####..#....#####", "....#....#....#....#....#####", "....#....#....#....#....#..##", "#########################..##", "#############################", "#####..####..##...####..##...", "..###..####..##...####..##...", "..###..###..###..###..###..##", "..###..###..###..###..###..##", "#############################", "##..#....#...#######..####..#", "....#....#.#.##...##...##...#", "..###..###...##...##...##...#", "..###..###..###..###..###..##", "#############################", "....##...#....##...########..", ".#..#....#.##.#..#.###..###..", "...##...##....#....#....#....", "..###..###..###..###..###..##", "#############################", "...###...######..####..####..", ".#..##...#....#....#....#....", "....#....#....#....#....#....", "..###..###..###..###..###..##", "#############################", "....######..#########..##...#", "....######..####..###..##...#", "....##..###..###..###..###..#", "..####..###..###..###..###..#"}

    Returns: {"0 5 ESEESWWWNN", "0 11 ESESWWWNEN", "0 17 ESSWWWNEEN", "0 20 ESENESSWWWNN", "1 0 EEESWWWN", "2 25 ESWN", "5 5 ESWN", "5 11 ESWN", "5 15 EESWWN", "5 22 ESWN", "5 26 EESWWN", "6 0 ESSWNN", "7 5 ESWN", "7 10 ESWN", "7 15 ESWN", "7 20 ESWN", "7 25 ESWN", "10 2 ESWN", "10 5 EEESWWWN", "10 10 EESSWSWNNN", "10 20 ESESWSWNNN", "10 26 ESSWSWNNEN", "11 0 ESSWNN", "11 15 EESWSWNN", "12 5 ESWN", "15 0 EEESWSWSWNNN", "15 6 EESWSWSWNNEN", "15 10 EEESSWWSWNNN", "15 16 EESSWWSWNNEN", "15 27 ESSWNN", "16 22 ESWN", "17 20 ESWN", "17 25 ESWN", "20 0 EESESWWSWNNN", "20 6 EESSWNWN", "20 15 ESEESWWSWNNN", "20 21 ESESWWSWNNEN", "20 27 ESSWWSWNNEEN", "21 10 EEESWWSWNN", "22 5 ESWN", "25 0 EEESSWNWWN", "25 10 ESWN", "25 21 ESWN", "25 25 EESWWN", "26 16 ESSWNN", "27 0 ESWN", "27 6 ESWN", "27 11 ESWN", "27 21 ESWN", "27 26 ESWN" }

  22. 29

    {"##..##...#....#...#######..##", "##..##...#....#.#.##...##...#", "#..###..###..##...##...##...#", "#..###..###..###..###..###..#", "#############################", "#..##....##...##...#....#####", "...##.#..#....##.#.#..#.##...", "...##...##...###...##...##...", "#..###..###..###..###..###..#", "#############################", "#..####..#...##....##...#...#", "#...##...#....#.##.#..#.#.#..", "#...##...##...#....#....#....", "#..###..###..###..###..###..#", "#############################", "#####..####..####..#....#...#", "....#....#....#....#....#.#.#", "....#....#....#....#....#.#.#", "#..###..###..###..###..##...#", "#############################", "#####..####..##....##...#####", "...##...##...##.#..#....#####", ".#.##.#.##.#.##.#.##.#.##...#", "...##...##...##...##...##...#", "#############################", "#####..#########..##...####..", "..###..####..###..##...####..", "...##...##...##...##...##...#", "...##...##...##...##...##...#"}

    Returns: {"0 2 ESWN", "0 6 EESWWN", "0 10 EEESWWWN", "0 15 EESSSWNWNN", "0 25 ESESSWNWNN", "1 20 EESSWNWN", "2 1 ESWN", "2 6 ESWN", "2 11 ESWN", "5 1 ESSSWNWNEN", "5 5 EEESWSSWNWNN", "5 11 EESWSSWNWNEN", "5 16 EESSWSWNNN", "5 20 EEESSWSWNNWN", "6 26 EESWSWNN", "10 1 ESESWSWNNN", "10 7 ESSWSWNNEN", "10 10 EESESWSWNNWN", "10 15 EEESSWSWNWNN", "10 21 EESSWSWNWNEN", "10 25 EESESWSWNWNN", "15 5 ESEESWSWNWNN", "15 11 ESESWSWNWNEN", "15 17 ESSWSWNWNEEN", "15 20 ESENESSWSWNWNN", "15 25 EESSSWWNNN", "16 0 EEESWSWNWN", "20 5 ESESSWWNNN", "20 11 ESSSWWNNEN", "20 15 EEESWSSWWNNN", "20 21 EESWSSWWNNEN", "21 0 EESSWWNN", "22 25 EESWWN", "25 5 ESWN", "25 16 ESWN", "25 20 EESWWN", "25 27 ESWN", "26 0 ESESWWNN", "26 11 ESSWWNEN", "27 5 EESWWN", "27 15 EESWWN", "27 20 EESWWN", "27 25 EESWWN" }

  23. 29

    {"#...###..#....#....##...#...#", "#...#....#....#.##.#..#.#.#..", "...##...##...##.#..#.#..#.#..", "...##...##...##...##...##...#", "#############################", "#####..####..####..#....##...", "....#....#....#....#....##.#.", ".#..#.#..#.#..#.#..#.#..#....", "...##...##...##...##...##...#", "#############################", "....#######..####..#...######", "..#.##...##...##...#....#####", "....#....#....#....#....###..", "...##...##...##...##...####..", "#############################", "..####..##...#########..##...", "..####..##...####..###..##...", "##..###..###..###..###..###..", "##..###..###..###..###..###..", "#############################", "..###....##...#....#######..#", "....#....##.#.#..#.##...##...", "##..###..##...##...##...##...", "##..###..###..###..###..###..", "#############################", "##..#...#######..###...##....", "#...#....#..###..###...##.##.", "#...##...#....#....#....#....", "##..###..###..###..###..###.."}

    Returns: {"0 1 EESWWN", "0 7 ESWN", "0 10 EEESWWWN", "0 15 EEESSWSWWNNN", "0 21 EESSWSWWNNEN", "0 25 EESESWSWWNNN", "1 5 ESESWWNN", "2 0 EESWWN", "2 10 EESWWN", "5 5 ESEESWSWWNNN", "5 11 ESESWSWWNNEN", "5 17 ESSWSWWNNEEN", "5 20 ESENESSWSWWNNN", "5 26 EESSWSWWNENN", "6 0 EEESWSWWNN", "10 0 EEESSWSWWNENWN", "10 11 ESESWSWWNENN", "10 17 ESSWSWWNENEN", "10 20 EESESWSWWNENWN", "11 6 EESWSWWNEN", "12 27 ESWN", "15 0 ESWN", "15 6 ESWN", "15 10 EESWWN", "15 22 ESWN", "15 26 EESWWN", "16 17 ESSWNN", "17 2 ESWN", "17 7 ESWN", "17 12 ESWN", "17 22 ESWN", "17 27 ESWN", "20 0 ESWN", "20 5 EEESWWWN", "20 11 EESSSWNWNN", "20 15 EEESSSWNWNWN", "20 26 ESESSWNWNN", "21 2 ESSWNN", "21 21 EESSWNWN", "22 7 ESWN", "25 2 ESSSWNWNEN", "25 5 EESESSWNWNWN", "25 15 ESSWNN", "25 20 EESWSWNN", "25 25 EEESSSWNWWNN", "26 10 ESWN", "27 12 ESWN", "27 17 ESWN", "27 22 ESWN" }

  24. 29

    {"#...#...#######..####..####..", "..#.#.#..#....#....#....#....", "....#....#....#....#....#....", "##..###..###..###..###..###..", "#############################", "....##...#....#######..####..", "....##.#.#..#.##...##...##...", "....##.#.##.#.##.#.##.#.##.#.", "##..##...##...##...##...##...", "#############################", "...##....##...#...#######..##", "....#.##.#..#.#.#..#....#....", "#.#.#..#.#..#.#..#.#..#.#..#.", "#...##...##...##...##...##...", "#############################", "#..####..#....######..#######", "....#....#....######..####..#", "..#.#..#.#..#.##...##...##...", "#...##...##...##...##...##...", "#############################", "#..##...#########..##...#..##", "#..##...####..###..##...#....", "#...##...##...##...##...##...", "#...##...##...##...##...##...", "#############################", "....#...#######..####..##....", "....#.#.##...##...##...##.#..", "#...#....#....#....#....#....", "#...##...##...##...##...##..."}

    Returns: {"0 1 EESSSWNWWNEN", "0 5 EESESSWNWWNN", "0 15 ESEESSWNWWNN", "0 21 ESESSWNWWNEN", "0 27 ESWN", "1 10 EEESSWNWWN", "1 25 ESWN", "2 27 ESWN", "5 0 EEESWWSWNN", "5 6 EESSSWWNNN", "5 10 EEESSSWWNNWN", "5 21 ESESSWWNNN", "5 27 ESSSWWNNEN", "6 16 EESSWWNN", "7 2 ESWN", "10 0 EESESSWWNNWN", "10 5 EEESSSWWNWNN", "10 11 EESSSWWNWNEN", "10 15 EESESSWWNWNN", "10 25 ESEESSWWNWNN", "11 20 EEESSWWNWN", "15 1 ESESSWWNWNEN", "15 7 ESSSWWNWNEEN", "15 10 ESENESSSWWNWNN", "15 20 ESWN", "16 26 ESESWWNN", "17 16 EESWWN", "17 21 EESWWN", "20 1 ESWN", "20 5 EESWWN", "20 17 ESWN", "20 21 EESWWN", "20 25 ESWN", "21 12 ESSWWNEN", "21 27 ESSWWNEN", "22 1 EESWWN", "22 6 EESWWN", "22 16 EESWWN", "22 21 EESWWN", "25 0 EEESWWWN", "25 5 EESSESWWNWNN", "25 15 ESESESWWNWNN", "25 21 ESSESWWNWNEN", "25 25 EEESWSESWWNWNN", "26 10 EESESWWNWN", "27 1 EESWWN" }

  25. 29

    {"#...#....##...#...#######..##", "....#.##.#..#.#.#..#....#....", "....#.##.#.##.#.##.#.##.#.##.", "#...#....#....#....#....#....", "#############################", "#..####..#....##...#....#####", "....#....#....##.#.#..#.##...", ".##.#.##.#.##.#..#.#..#.#..#.", "....#....#....#....#....#....", "#############################", "#..####..#...##...#######..##", "#...##...#....#.#.##...##...#", "..#.#..#.#..#.#.#..#.#..#.#..", "....#....#....#....#....#....", "#############################", "#..##....##...###########..##", "...##.#..#....######..###..##", ".#..#.#..#.#..#....#....#....", "....#....#....#....#....#....", "#############################", "######..##...##....##...#####", "#..###..##...##.##.#..#.###..", "....#....#....#....#....#....", "....#....#....#....#....#....", "#############################", "##..#...###...######..####..#", "##..#.#..##...#....#....#....", "....#....#....#....#....#....", "....#....#....#....#....#...."}

    Returns: {"0 1 EESWSESWWNWNEN", "0 5 EEESSSWWWNNN", "0 11 EESSSWWWNNEN", "0 15 EESESSWWWNNN", "0 25 ESEESSWWWNNN", "1 20 EEESSWWWNN", "5 1 ESESSWWWNNEN", "5 7 ESSSWWWNNEEN", "5 10 ESENESSSWWWNNN", "5 16 EESSSWWWNENN", "5 20 EEESSSWWWNENWN", "6 26 EESSWWWNEN", "10 1 ESESSWWWNENN", "10 7 ESSSWWWNENEN", "10 10 EESESSWWWNENWN", "10 15 EESSESWWWNNN", "10 25 ESESESWWWNNN", "11 20 EESESWWWNN", "15 1 ESSESWWWNNEN", "15 5 EEESWSESWWWNNN", "15 11 EESWSESWWWNNEN", "15 25 ESWN", "16 20 ESEESWWWNN", "17 15 EEESWWWN", "17 25 EEESWWWN", "20 6 ESWN", "20 10 EESWWN", "20 15 EEESSSWNWSWNNN", "20 21 EESSSWNWSWNNEN", "21 1 ESESWWWNEN", "21 27 ESSWWWNEEN", "22 5 EEESWWWN", "22 10 EEESWWWN", "25 2 ESWN", "25 5 EESESSWNWSWNNN", "25 11 EESWWN", "25 20 ESWN", "25 26 ESESSWNWSWNNEN", "26 15 EEESSWNWSWNN", "26 22 ESSWWWNEEN", "27 0 EEESWWWN", "27 10 EEESWWWN" }

  26. 29

    {"##..#....#..####..##...####..", "....#....#..####..##...####..", "....#....####################", "....#....####################", "#############################", "#...#....######..###...####..", "#...#....#..###..###...##....", "##########..###..###..###..##", "#############################", "#############################", "....#######..##...###...#....", "....##..###..##...###...#....", "..####..###..###..###..###..#", "#############################", "#############################", "...#######..####..##....##...", ".#.##...##...##...##.#..#....", "...##...##...##...##...##...#", "#############################", "#############################", "#######..##...#..###....##...", "##..###..##...#....#....##.#.", "##..###..###..###..###..##...", "#############################", "#############################", "....#######..####..#...##....", "..#.##...##...##...#....#.##.", "#...##...##...##...##...#....", "#############################"}

    Returns: {"0 2 ESWN", "0 5 EEESWWWN", "0 10 ESWN", "0 16 ESWN", "0 20 EESWWN", "0 27 ESWN", "1 0 ESEESWWWNN", "2 5 EEESWWWN", "5 1 EESWWN", "5 5 EEESWWWN", "5 15 ESSWNN", "5 20 EESWSWNN", "5 27 ESWN", "6 10 ESWN", "6 25 ESWN", "10 0 EEESWWSWNN", "10 11 ESSWNN", "10 15 EESSWNWN", "10 21 EESWSWNN", "10 25 EEESWSWNWN", "11 6 ESWN", "15 0 EESSWWNN", "15 10 ESESWWNN", "15 16 ESSWWNEN", "15 20 EEESWSWWNN", "15 26 EESWSWWNEN", "16 5 EESWWN", "20 7 ESSWNN", "20 11 EESSWNWN", "20 15 ESWN", "20 20 EEESSWNWWN", "20 26 EESSWWNN", "21 2 ESWN", "21 17 ESWN", "25 0 EEESSWWNWN", "25 11 ESESWWNN", "25 17 ESSWWNEN", "25 20 EESESWWNWN", "25 25 EEESSWWWNN", "26 6 EESWWN" }

  27. 10

    {".#.#...##.", ".#...##.#.", ".#.##.#.#.", ".#...###.#", "#..#...###", ".##.#..#..", ".#.#.##...", "##.#.#####", "#####.#...", ".##.####.#"}

    Returns: { }

  28. 20

    {"#........###.#.##.#.", "#.#..#.#.#.##...##..", "###.####.#.#..##.#..", "##.#......##.##.##..", "#######.#.#...#.##.#", "##..####.#..###....#", "#..#....#####..##..#", "..#.##..######.###..", ".###...##..####.#..#", "#..##..#.##.##..#..#", "..##.#.###.##.#####.", "..#.#.#.##..###..#.#", ".###..##.#.###..#.#.", "#.#.#..#..##......##", "#..###..###.###.#..#", "##.#.#.#...####..#..", "....##...#.#.#..#..#", "##.#.#..#..##.##..##", ".#######..##....#.#.", "####...#.....#######"}

    Returns: { }

  29. 30

    {"#..###..#.#....#..#.#.##......", "#.###...##.#.##.#.##.#.#.#....", "###.###.####.##...#..#.###..##", "###...#.##.###.......##.....#.", ".#.#####.....###...#.###.####.", "###.###..#.#.#####...#..#.#.#.", "#...###.###..##..###.#.######.", "#.#..#..##.#...##..#..#...#.#.", ".##.##...###....#.#........#.#", "..##..#.#.##.#..###.....###..#", ".#####.######..#.#....####...#", "##.#..#....#.#.#.##.#....##.#.", "#..#####...#.##.#.....####..##", "..#.#...###..##..##....##...##", "...##.##....#...#.#..####..##.", "#....#..##...######.###....#.#", "..#..#.#....#.########.#.#..##", ".###.###..#####...#####.......", "#..#######.####..#...####...##", ".##....#.########....##.####..", ".#.#..##.##.#####..#..##..##..", "#.....#.#..#.##.##...##..###..", "...###..###...#.##.###....####", "###.####.#.##..#.##...#.#.##..", "..#...#.#.#.#...#.#......##.##", "..##.##..#..#.###..#..##..#.#.", "#...#..##.......##..#.#..##.#.", "#.#...##...#..##........##.#.#", ".#..####.......#....#...#.#..#", "##.#.#...#....#...##.##..##.##"}

    Returns: { }

  30. 10

    {"##...##...", ".#........", ".......#.#", "#........#", ".#.#.####.", "#.......#.", "..##......", ".#........", "#.....#.##", ".....#.#.."}

    Returns: { }

  31. 20

    {".#.#...##.........#.", "....#.#.....###...#.", "#..............#....", "..##.....#.#...#....", "...#...#.......##...", ".##............#..#.", "##...#.#.....#..##..", "..#...#.##.#.#..#...", "#.......#.....#.#...", "..#...###.##.....#..", "#.#...#.##.....#..##", "....##..##........#.", "..#.................", ".##........#.#...#.#", "#......#....#......#", ".#.#..#..#..#....#.#", ".#...#..#.....##..#.", "....#.....#.#.....#.", ".......#####....#...", ".......#....#......."}

    Returns: { }

  32. 30

    {".......##.#.#.........#....##.", "#...###......###....####..##..", "..##.............##......#.#.#", "##...##....###...#.....#..#...", ".#.....##.#...#...............", "..#.##...#....#.#....#..#.##..", ".#.#......#.##.#.....##.......", "................#..#...#.....#", ".#....#....#....#..#..#...#.#.", "#.....#.#...#.#..#.#..........", "......#.##...#.......###.....#", "##.......#.#...............##.", "###.........#.....##.#..##.#..", "..#....#.#.....#..#.....###.#.", ".............#...#.##...##....", "...#...#......#..#.#........#.", "###..................#....#.#.", ".....#.........#.....#........", "#.##.#.....#.#.#....#.#....#..", "##....#.#..........#.#.#.#.#..", "...###.##..........###......##", "##..#.....#....##.##...#......", ".#..#.##.........#.###..#.##..", "..#......#.....#.##......##...", ".###.....#......##..#..#....#.", ".........#....................", ".....#.....#.#..##..#........#", "......#...##...#..........#..#", "........##...#.....#....#.....", "...#.#..##.#.#....#........##."}

    Returns: { }

  33. 10

    {".....#..#.", ".......#..", "..........", "......#...", "..#.......", "#.........", ".......#..", "..........", "..#.......", ".........."}

    Returns: { }

  34. 20

    {"....................", "#....#..............", "...............#....", "....................", "....................", ".....#..............", "....................", "...............#....", "....................", "..............#.....", "....................", "..#.................", "............#.....#.", "..............#.....", "..#.................", "..................#.", "......#.#...........", "............#....#..", ".#..................", "..............#....."}

    Returns: { }

  35. 30

    {"......#.......................", ".........#....................", "..............................", "................#............#", ".................#............", "..............................", "..............................", "...#..........................", "..............................", "..............................", "..............................", "..............................", "..............................", "...................#..........", "..............................", "....................#.........", "...............#..............", "............#....#............", ".......................#......", ".......................#......", "#.............................", "..............................", "..............................", "........#.....#...............", "..............................", "..............................", "..................#...#....#.#", "..............................", "..............................", ".............................."}

    Returns: { }

  36. 6

    {"......", "......", "...#..", "......", "....#.", "......"}

    Returns: {"0 0 EEESENESSWSESSWWWWWNENWNEENWWN", "3 2 ESWN" }

  37. 9

    {".........", ".........", "..#......", ".........", "........#", "#........", ".........", ".........", "........."}

    Returns: {"0 0 ESENESENEEEESWWWSWWSWSESWSESEEEEESWWWWWWNWSWNNENNWNENWNN", "2 6 EESWSWWWNEEN", "5 4 EEEESWWWWN" }

  38. 12

    {"....#..#....", "............", "............", "#.......##..", "#...........", "..........#.", ".#..#.......", "............", "............", "............", "............", "...#........"}

    Returns: {"0 0 ESENESEENESEENESENESSWWWWWWWWWWWNN", "3 1 EESENESENESESWWSWNWWSWSESWSESWSWWNENWNENWNNEENWN", "3 10 ESSSWWNNEN", "6 7 ESEEESWWWWSWWWNNESENEN", "9 8 EEESSWNWSWWWWWNEEEEN" }

  39. 15

    {"...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...#...........", "..............."}

    Returns: {"0 0 EEEEEEEEEEEEEESWWWWWWWWWWWWWWN", "2 0 ESWN", "2 2 EEEEEEEEEEEESWWWWWWWWWWWWN", "4 0 ESWN", "4 2 EEEEEEEEEEEESWWWWWWWWWWWWN", "6 0 EESENESENESENESENESENESENESSWWWWWWWWWWWWSEEEEEEEEEEEESWWWWWWWWWWWWSWSWNNENWNENWN", "11 3 EEEEEEEEEEESWWWWWWWWWWSEEEEEEEEEESWWWWWWWWWWWWWWNEENEN" }

  40. 18

    {"..................", "..................", "..................", "..................", "..................", "..................", ".............#....", "..................", ".....#............", "...............#..", "..................", "..................", "#..........#......", "..................", "....#.............", "..................", "..................", ".................."}

    Returns: {"0 0 EESWWN", "0 3 ESWN", "0 5 ESWN", "0 7 ESWN", "0 9 ESWN", "0 11 ESWN", "0 13 ESWN", "0 15 EESWWN", "2 0 ESWN", "2 2 EESWWN", "2 5 EEEEESWWWWWN", "2 11 ESWN", "2 13 EEEESWWWWN", "4 0 ESWN", "4 2 EESWWN", "4 5 EEEEESWWWWWN", "4 11 ESWN", "4 13 EEEESWWWWN", "6 0 EESENESENEEEEEEESWWWWWWSSENESENEESWSWWWWSESENESENENEEEEEESWWWWWSEEEEESWWWWWWWWWWSEEEEEEEEEESWWWWWWWWWWWNWSWSEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWNEEENWWWNNESEENWNWNWNENWNENWN", "6 14 EEESWWSWSWWNENEN", "8 2 EESESWSESESWWNWNWNENWN", "8 16 ESWN" }

  41. 21

    {".....................", ".............#.......", ".....................", "..........#..........", ".....................", ".....................", ".....................", ".........#...........", "........#............", ".....................", ".....................", ".....................", ".....................", ".....................", ".........#...........", ".....................", ".....................", ".....................", ".....................", ".....................", "....................."}

    Returns: {"0 0 EEEESENESENEESWSWWWWSWSWWWNEENENWWSWNN", "0 10 ESENEESENEEEEESWWWWSWWSWNWWSESEEENEENEEESWWSWWSWWWWWNWWWWWSWSWWWWWNEEEENENEEEENENN", "4 19 ESSWWSEESWWWNWSWNWSWNWSWSEEEEEEEEESWWWWWWWWWSEEEEEEEEESWWWWWWWWWSEEEEEEEEESWWWWWWWWWSEEEEEEEEESWWWWWWWWWSEEEEEEEEESWWWWWWWWWSEEEEEEEEESWWWWWWWWWWWWWWWWWWWWNEEEEEEEEEENWWWWWWWWWWNEEEEEEEEEENWWWWWWWWWWNEEEEEEEEEENNWNENWNENWNENENEEEEEENEEN", "5 7 EEESWWSWSWWWWWWWNEEEEEENEN", "9 0 EEEEEEEESWWWWWWWWN", "11 0 EEEEEEEESWWWWWWWWN", "13 0 EEEEEEEESWWWWWWWWN" }

  42. 24

    {"...............#........", "........................", "........................", "........................", "....##..................", ".......................#", "........................", "...............#........", "............#...........", ".................#......", "........................", "........................", ".......#................", "........................", "........................", "........................", "........................", "........................", "...........#............", "........................", "........................", "........................", ".......#................", "........................"}

    Returns: {"0 0 ESENESENESENESENESENESENEESWSWSWNWSWNWSWNWWSESSWWSEESWWSEESWWSSENEEENWNENWNENWNEESENESENENENENENESENESENESENESSWWWSWNWSWNWSWSWSWSWWSEEENENENESENEEENEESWSWWWSWSEENEEESWWSWWWWWWWWSEEESEENESENESEESWWWWWWWSEEEEEEESWWWWWWWSEEEEEEESWWWWWWWSEEEEEEESWWWWWWWSEEEEEEESWWWWWWWSEEEEEEESWWWWWWWSEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWNEEEEEENEESENESENESEEENWWNEENWWNWNWWSWWNENWNENEEENWWWNWNWWSWWWWSEEEEEESWWSESWSESWWWWSWNWSWNNENWNENWNENWNENWNEEENWWWNEEENWWWNEEENWWWNEENWWNN", "2 3 ESWN", "6 9 ESWN", "6 16 ESWN", "8 9 EESESWSESWWNWNENWN", "8 22 ESWN", "10 2 ESWN", "10 13 EESWWN", "12 13 EESWWN", "14 2 ESWN", "14 4 ESWN", "14 13 EESWWN", "15 10 EESWWN", "16 2 ESWN", "16 4 ESWN", "16 13 EESSWNWN", "19 4 EEESWWSWWWWWNEEEEN", "19 8 ESWN", "19 10 EESWWN" }

  43. 27

    {"...........................", "...........................", "...........................", ".............#.............", "...........................", "...........................", "...............#...........", "...........................", "...................#.......", "...........................", "...........................", ".......................#...", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", ".#.........................", "...#.......................", "...........................", "..........................#", "...........................", "...........................", "............#..............", "..................#........"}

    Returns: {"0 0 ESENESENEESWSWWSEEENEESWSWSESWWWWSEEEEENESENEEEENENESSSWWWWWSWWSEEENEEEEEENWNEESENEEEEEESWWWWWSWSWWWWWWWSWWWWSEEEEENEEEEEEENENEEEESWWWSWSWWWWWWWSWWWWWWSEEEEEEENEEEEEEEEEESWWWWWWWWWSWWWWWWWWSEEEEEEEEENEEEEEEEESWWWWWWWSWWWWWWWWWSWNWSWWWWSWSWSWWNNEENENEEEENENWWSWWWWSWSWNNENWNEESEEENEEENWWWWSWNWWWNEEEEEEEENWWWWWWWWNEEEEEEEENWWWWWWWWNEENWWNENWNEENWWNN", "0 7 ESWN", "0 9 EEEEEEESWWWWWWWN", "0 17 ESWN", "0 19 EEEEEEESWWWWWWWN", "2 9 EEEEEEESWWSWSWWWNEENWWWN", "2 17 ESWN", "2 19 EEEEEEESWWWWWWWN", "4 2 ESWN", "4 4 ESWN", "4 8 ESWN", "4 17 ESWN", "4 19 EEEEEEESWWWWWWWN", "10 24 EESWWN", "16 20 EEEEEESWWWWWSWWWWWWWWWSWSWWSWSWWWWWWWWNEEEEEEENENWWSWWNENEEEESENENEEEEEEEEEN", "18 22 EEEESWWWSWWWWWWWWWSWSWWSWSWWWWWWWWWWNEEEEEEEEENENEENENEEEEEEEEEN", "20 24 EESWSWWWWWWWWWSWSWWSEEENENEEEEEEEEESWWWWWWWWSWSWWWWWWWWWWWWWWWWWNEEEEEEEEEEENENEENENEEEEEEEEEN", "25 19 EEEEEEESWWWWWWWN" }

  44. 30

    {".........#....................", "..............................", "............#.................", "..............................", "..........................#...", "..............................", "..............................", ".#............................", "....................#.........", "....#......#..................", ".................#......#.....", ".................#.#..........", "..............................", "..............................", "#....#.....#..................", "..............#.........#.....", "..............##..#..##.......", "#.............................", "..#........#.......#..........", ".##..........................#", ".#............................", "................#....##.......", "..............................", "...#..........................", "..............................", ".............................#", "........................#.....", "..............................", ".....#.......#................", "......................#......."}

    Returns: {"0 0 ESENESENESENEESWSWSWNWWSESWWWSWNNEENWWNN", "0 10 ESENESENESENESENESENESENESENESENESENESSWWWSWNWSWNWSWNWSWNWSWNWSWNWWSESESENESENESENESENESENESEEEESWWWSWNWSWNWSWNWSWNWSWNWWSESSSWWNENWNWWSESWSESWSESWSESWSESEEESESENNWNWNWNWNEESESENNWNENNEENENESENESENESSWSWSWSESWSWWNENWNENENWWSWSWSESWSESWSESENESESENESESESENESSWWWNWNWSWNWNWSWNWSWSWNWNWNWSWNWNWWWNWNENENENWWSWSWWSESWWNWSWWWWNENESENENEEENENEEENWWWNWNEESENENNWSWWWWSWSESESWSWWNENWWSWNWSWNNEEENENENEEEENENESESEENWNWNWNWSWSWSWWWNEENENENEN", "3 27 EESWWN", "5 2 EESWSWSWWNNEEN", "7 27 EESWWN", "8 17 EESWWN", "9 27 EESWWN", "11 14 EESWWN", "11 26 EEESWWSEESWWSEESWWSEESWSWNWNWNENWNENWNEN", "12 0 ESWN", "12 2 ESWN", "15 10 ESWN", "16 23 ESWN", "17 1 EEESWSEEEEESESWSWWWWWWSWWNENWNNNEN", "17 5 ESWN", "17 7 ESWN", "18 9 ESWN", "19 11 ESESWSESENESENESENENESESENESENESESENEESWSWWWNWSWNWSWNWNWSWSWNWSWNWWSESWWNWWWWSEEESWWWWNWWWNEEENWWWNEEEESEEEENWWWNEENWNEN", "20 2 ESWN", "20 4 ESWN", "20 6 ESWN", "20 14 ESWN", "24 0 EEESWWWN", "25 19 ESESENESESEEEEESWWWWWWNWWSWWWWNEEENWWWNEEN", "26 0 ESWN", "26 2 ESWN", "26 15 ESWN", "26 25 EEEESWWWWN", "27 4 EESEEEEEENEESSWWWWWWWWWWWWWWNEEEEN", "28 15 ESWN" }

  45. 30

    {"........#.....................", ".#...#........................", "..............................", ".............................#", "...#......#...#...............", "..............#...........#...", "..#..................#........", "........................#.....", ".........#.#...........#......", "..............................", "...#...................##.....", "#.............................", "......#.........#.............", "..........#......#............", "...............#..............", "..............................", "......................#.......", "...#...........#..............", "#..................#..........", "..............#...............", "..............................", "..............................", "...#.................#........", "..............................", ".........#....................", "..##....#.....................", ".#..................#.........", ".....#.....#..................", "................#.............", "...........#.................."}

    Returns: {"0 0 EEEEEEESWSWSWSESWSWNWNWWNEEENENWWSWWNN", "0 9 ESENESENESENESENEESWSWWWSWNWSWNWSWNWSWSESWSWSWSWWWWNEEENENENWNENENEN", "0 20 ESENESENESENESENESSWSWNWSWNWSSWSWSESWWWSWWWWSEEEEENESEENENEEEESWWWSWSESEEESWWWSEEESWWWSWWWWWWWWSWSWSWSEENENENEESWSEENENESENESEEESWWWWWWSWWWWWSWWWWSWSWSWSWSWSWSWSEENENENENENENENEEEENEEEEENEEEEESWWWWSWWWWWSWWWWSWSWSWSWSESEENWNENENENEEEESEEEEEEENESSWWWWWWWWSSWSEEEEEEEEESWWWWWWWWWWWWWWWWWNWWSWWWWWNENNENWNEENEENENENENWWSWSWSWWSWWSWSESWSWNWSWWNNENWNEESENENEENEENENENWNWNENEEEEEESENENWNWNWWSESWWWWWNWSSWSWSESESWSWWSWWWSWWNENWNENENWWNEEEEENENENWWSWSWWWWNEEENENENEESENESENEENNENWNENESENESEEENENENENENWWSWSWSWSWNWWNENESENENENN", "4 11 EESWSWSWSSESWWNWSWWWWSWSWSWWNENENWWNEEEEEEENENENENEN", "4 25 EESENESSWWWWWNEN", "5 0 ESWN", "7 0 ESWN", "8 14 ESWN", "9 27 EESWWN", "10 13 ESWN", "10 15 EEEEEEESWWWWSWNWWN", "11 23 EESWSESWWWWWWWNENESENESENN", "12 11 ESWN", "15 27 EESWWN", "16 10 EESENESSWWWNWN", "17 4 ESESWWSWWNENEN", "21 26 EEESWWSWWWWWNEEEEN", "24 18 EESWSWSESWWNWNENEN", "26 22 EEEEEEESWWWWWWWN", "28 0 EESWWN", "28 3 ESWN" }

  46. 30

    {"..............................", "......#...........#...........", "..................#..........#", "...........#..................", "..............................", "..........#...................", "..............................", "..............................", ".............#...............#", "............#.................", "..............................", "..............#...............", "............#..#..........#...", ".............................#", "...#.......................#..", ".....#...........#............", "..............................", "..............................", "............................#.", ".....#.............#..........", "........#....#...#............", ".........#..............#.....", "...........................#.#", ".............................#", "............#.................", ".....#.............#.#........", ".......#......................", ".#............................", ".......#..#...................", "........................#....."}

    Returns: {"0 0 EEEEEEESENESENESSESSWSESESWSWSWNWWSESWWWSWSWSWWNENENENWNENWNEESENESEEENWWNWWWNEEEENNWSWNWSWNWNWWWWWN", "0 12 ESWN", "0 14 EEEEEEEEEEEEEEESWWWWWWWWWWSESENEEEEEEESESWWNWWWWWSWWWNWSWNWWSESWSWNWNENWNEEEENWWWN", "2 0 EESENESESSWNWWSESWSESWSESWSWWNENWNENWNENWNENWN", "4 23 EEESEEESSWNWWWNWSWWWWWWSWSWSWNWNEENENEEEEEEN", "7 19 EEEEEEEESESESWWNWNWWWWWWSWSWSWSWSESESESESESENENEENWNENESSEENESSWWWSWWSWSWSWNWNWNWNWSWNWWWNWNNESESEENWNWNWNWWSWWWSWSWSESESESESESESESESESEENWNWNWNEESESESEEESEEEEEEEESWWWWWWWSWSWSSWNWSWWWWWWWWWNWSWWWWWWNWSWNNNENWNENWNENWNENWNENWNENWNEESEENENENENEEENEEENESESENENENEN", "8 6 ESWN", "9 21 EEEESESWSWSWWNENENWWSWSWSESEESWSWNWNWNWNENENEN", "11 27 EESWSWNN", "12 0 ESWN", "13 9 EESWSESESESENESESWWWWNWNWNWNWNEN", "16 2 EESENESESESESESESESESESEEEENEESSWSWNWWWWWNWSWNWWNEENWNWSWSWWWWSWWNENWNEESENESENENWWNENWNWWSWWNENWN", "17 27 EESSWWWSWSSENENEESWSSWWWWNWSWNWWWNWNEESEEENENENEEN", "18 17 ESWN", "20 2 ESWN", "20 4 ESWN", "25 6 EESSWWSWWWNWNEESENEN", "26 9 ESWN", "26 23 EEEEEESWWWWWSWSWWNENEN", "27 11 EEEEEESWWWWWWN", "28 25 EEEESWWWWN" }

  47. 30

    {"..........#...............#...", "..........................#...", "..............................", "...........................#..", ".............#................", "....#........#................", ".........#.#..................", "....#..#......................", ".#.....#....#.................", "..............................", "..#.....#................#....", ".................#.#..........", "##......#........#............", "..............................", "...#..........................", "..............................", ".#................#...........", "..............................", "..............................", "..#..........#................", "#.............................", "......##...#..................", "....#......................#..", "....#................#........", ".............#................", "............................#.", "...#..........................", ".....#.#......................", "..............................", "....................#........."}

    Returns: {"0 0 ESENESENESENESENESESESESSWNWNWNWSWNWSWNWSWNWSSWWNENWNN", "0 11 EESENESENESENESENESENESENESSWSWNWSWNWSWNWWSESWWSEESWWSWSESWWWWWWWSEEEEEEEENEENENWNEESENESENEESWSWWWWSWSWWSSEENENENEEEENEEESWWSWSESEESWWWNWNWNWSWSWSWSWNWWWWWWWNEEEENWWWWWWWWWSWWWWWNEEEENENENEEENENEEENWNENENWWSWNWNWN", "0 27 EESWWN", "2 26 EEESWSESWWNWSWWWNEENEN", "4 3 EESENESENESESSWWNWWSWNWWWNEN", "4 19 ESWN", "4 21 ESWN", "5 0 ESWN", "6 27 EESWWN", "7 0 EEESWSWWNN", "7 13 ESWN", "7 17 ESWN", "8 4 EESWSWWNEN", "10 0 ESWN", "10 28 ESWN", "12 9 EESWSEEEEEEEESEEENENENESESWWSWSWSWNWSWWWWWWWWSWWSEEENEEEEEEEEEENENENEENEEESWWSEESWWWNWSWSWSWWWWWWWWWSEEEEEEEEEENENEEEESWWWSWSWWWSWNWSWNWSWNWSWNWSWSWSWSWWWWSWSSSWNWSWWWWNEEENENENENEEEENENENENWWWWWNWSWWNENEENWWWSWSWSESESESWSWSWWNENWNENWNWNWNEEENENEEENESESENEEEEEEENWWWWWWWWNWNEN", "13 0 EEEESENEESWSWWWSWSWWNNEENWWN", "20 27 EESWSESWWWSWWWSWWNENENESENENEN", "21 0 ESSWNN", "21 8 EESWSWWNEN", "23 14 EEEEEESWWWWWWN", "24 0 ESWN", "24 27 EESSWWSWNWSWWWWNEEENEEEN", "25 12 ESENEEEEEESWWWWWSWSEENEEEESWSWNWSWWWWWWWWWWNENNEEEEN", "26 0 EESWWN", "27 9 EESWWN", "27 12 ESWN", "27 28 ESSWWWWWWWWNEEEEEEEN" }

  48. 12

    {"............", "............", "............", "............", "............", "............", "............", "............", "............", "............", "............", "............"}

    Returns: {"0 0 EESWWN", "0 3 ESWN", "0 5 ESWN", "0 7 ESWN", "0 9 EESWWN", "2 0 EEEEEEEEEEESWWWWWWWWWWWN", "4 0 EEEEEEEEEEESWWWWWWWWWWWN", "6 0 EEEEEEEEEEESWWWWWWWWWWWN", "8 0 EEEEEEEEEEESWWWWWWWWWWWN", "10 0 EEEEEEEEEEESWWWWWWWWWWWN" }

  49. 21

    {".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", ".....................", "....................."}

    Returns: { }

  50. 30

    {"..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".............................."}

    Returns: {"0 0 EESWWN", "0 3 ESWN", "0 5 ESWN", "0 7 ESWN", "0 9 ESWN", "0 11 ESWN", "0 13 ESWN", "0 15 ESWN", "0 17 ESWN", "0 19 ESWN", "0 21 ESWN", "0 23 ESWN", "0 25 ESWN", "0 27 EESWWN", "2 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "4 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "6 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "8 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "10 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "12 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "14 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "16 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "18 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "20 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "22 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "24 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "26 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN", "28 0 EEEEEEEEEEEEEEEEEEEEEEEEEEEEESWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN" }

  51. 13

    {"..........#..", "......#......", "..........#..", ".....#.......", "......#......", "...#.........", "......#......", "........#....", "...........#.", "....#........", ".........#...", ".........#...", ".#..........."}

    Returns: { }

  52. 17

    {"............#....", "................#", "..........#......", "......#..........", "................#", "..#..............", "................#", ".....#...........", "...#.............", "........#........", ".#...............", "......#..........", "........#........", "...#.............", "...........#.....", "...#.............", "....#............"}

    Returns: { }

  53. 21

    {".....#...............", "#....................", ".......#.............", "...............#.....", "..#..................", ".#...................", "........#............", "..#..................", ".....#...............", "............#........", "....#................", "..........#..........", "................#....", ".............#.......", "...........#.........", ".................#...", "................#....", "........#............", "...........#.........", ".....#...............", "..............#......"}

    Returns: { }

  54. 25

    {"........#................", ".#.......................", ".........#...............", "......#..................", "............#............", ".......#.................", "...................#.....", "............#............", "...........#.............", "............#............", "..#......................", "....#....................", "..#......................", "........................#", "..........#..............", "......#..................", "...#.....................", ".........#...............", "......................#..", "...........#.............", "...........#.............", "........................#", "....#....................", ".........#...............", "....#...................."}

    Returns: { }

  55. 29

    {"............#................", ".......#.....................", "....................#........", "....#........................", "..........................#..", "..........................#..", "...........#.................", "......................#......", "#............................", ".......#.....................", "..........#..................", "........................#....", ".....................#.......", "....#........................", "...................#.........", ".......................#.....", "........................#....", ".....#.......................", "...#.........................", ".........................#...", "........#....................", "............................#", ".#...........................", "..................#..........", ".........................#...", "................#............", "......................#......", "...........................#.", "..............#.............."}

    Returns: {"0 0 EESENESSWWSESWSWWNENWNENWN", "0 5 EEESSWSWWNENWN", "0 9 EESEENEEESWWSWWWSWSWSWWWWSWSWSEENENEEEENENENEEENESSWWWSWSESEEEEEENENENEEEESWWWSWSWSWWWWWWWWNWWWWWSWSWWWWSWSWNNENENWWNEEENENEEEENENENWN", "0 17 ESWN", "0 19 ESWN", "0 21 EEEEEEESWWWWWWWN", "2 17 EESESWSWSWWWWNEEENENWN", "2 21 EEEEEEESWWWWWWWN", "4 27 ESWN", "6 23 EEEEESWWWWWN", "8 8 ESWN", "8 10 ESWN", "8 21 ESENEEEEESWWWWSWWWSWWWNWSWSWNWSWNWSWSEEEEEENEEESWWSWWWWWWWSWWWWWWWWSWNWWNEEEEEEEEEENWWWWWNEEEEENENENESENESENEEESENEN", "10 3 EEEEEESWWWWWSWSWNNEN", "10 25 EEESWWWN", "11 22 ESEEEEESWWWWWSWSWSWWWWWWWWWNEEEEEEEENENENN", "12 0 ESWN", "14 24 ESWN", "14 26 EESSWNWN", "16 0 ESWN", "16 4 EESENEESWSWWSWNWSWSWNWSWNNEENEEN", "16 10 ESWN", "16 22 ESEENESEESWWWWSWNWWWWWWWWWWSWWWSWSEENEEENEEEEEEEESWWWWWWWSWWWSWWSWNWNWSWSWNWSWWWSWNNNEESENENESENENEENEEENEEEEEEEEEEN", "19 26 EESWSWWWSWWWWWWWSWWWSWWSWSWWSEEENENEENEESENENEEEEEENEEESWWSEESWWWSWWSEEENEESSWWWWWWNWSWWWWWWNENWWSWSWWWWWNWSWWWWWWWNEEEENESENEENWWWNEENESESENENEENEEENEEEEEEENEEEN", "24 2 EESWSWWWNEEN", "24 20 EEEESWWWSWSWWWNEENEN" }

  56. 30

    {".#.#..#.#.#...####.#......####", "###.####.#..#.####.####.##.##.", ".###.#.#####...#..#.#.#....##.", "#...###...##..#######..#...#..", "....#....##...##.#.#..#.##.#..", "...########.#.#####.....###..#", "#...#....##..###.#..#####.##.#", "####.#.####......#.#.##.#...##", "#.##...#.###.##....#####...#..", "###..##.####..##....##.......#", "##...#..####.#.#...###.#.##...", "#..###...#.....##..###...#....", ".##.....##...#..###...##.#...#", "#.###..#.#.##.#..##.#.##..####", ".#.#..##..#..#.#####..#.#.#.#.", "##....#.#.....####....##.#.#.#", "###....#...........#####.####.", ".#...#.#.###..###.#.#.##.#..#.", "...#####.#####...#####.#.#..##", "#.#.##.##.##..##.#.###.....#..", ".#....#..#..#......###...#....", ".###..####....###.##..#.##.###", "#####....##..#.#...##.########", "...#.#..##..#.##.###..#.#...##", "##.##.##.#...##.#...#...#..###", "..##...#....#####..##.#..##..#", "#.##.####.#####...##...#..##.#", ".#..#.#.###.#.#.##..##..##...#", ".#....##.##.##..#.#.###...##..", ".#.#....#.##.##.....#..##..#.." }

    Returns: { }

  57. 6

    {"......", "....#.", "..#...", "...#..", ".#....", "......" }

    Returns: {"0 0 EEEEESSSWNWNWWSWNN", "3 0 EESSWWNN", "4 3 EESWWN" }

  58. 16

    {"................", "................", ".####.####.####.", ".####.####.####.", ".#..#.#..#.#..#.", ".#..#.#..#.#..#.", ".#..#.#..#.#..#.", ".#..#.####.####.", "....#.####.####.", "....#.#..#.#..#.", "....#.#..#.#..#.", "....#.#..#.#..#.", "....#.####.####.", "....#.####.####.", "................", "................" }

    Returns: {"0 0 ESENESENEESWSSSSSSSSSSSSSESWWNWSWWWNEENENWWSWNNENWNEEENWWWNNNNNNNN", "0 7 ESWN", "0 9 EESENESENESSSSSSSSSSSSSSSWNWSWNWSWWNENNNNNNNNNNNNNWN", "4 2 ESWN", "4 7 ESSWNN", "4 12 ESSWNN", "6 2 ESWN", "9 7 ESSWNN", "9 12 ESSWNN", "10 2 ESWN", "14 7 ESWN" }


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: