Statistics

Problem Statement for "ShadowArea"

Problem Statement

NOTE: This problem contains images that may not be displayed properly if viewed outside the contest applet.

You will be given the layout of a rectangular room as a String[] room, where each character corresponds to a 1 meter by 1 meter square area of the room. A '.' (period) indicates an empty square, a '#' indicates a post that covers the square and extends from the floor to the ceiling, and a '*' (asterik) indicates a light source at the center of the square. There will be exactly 1 light source in the room.

The source will illuminate any point on the floor in an empty square if a straight line from to that point from the light source does not intersect any post. All other points in empty squares are in shadow. Given room, compute the area of the floor (in square meters) that is in shadow.

For example, consider the following room layout:


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

The post below the light casts a shadow of 5.0 square meters, and the shadow cast by the post to the right of the light has an area of 8.5 square meters, as shown in the figure below. Therefore, 13.5 is the correct answer.


Definition

Class:
ShadowArea
Method:
area
Parameters:
String[]
Returns:
double
Method signature:
double area(String[] room)
(be sure your method is public)

Notes

  • The returned value must be accurate to within a relative or absolute value of 1e-9.

Constraints

  • room will contain between 1 and 50 elements, inclusive.
  • Each element of room will have the same length, between 1 and 50, inclusive.
  • room will contain only the characters '#', '.' (period), and '*'.
  • Exactly one characer in room will be a '*'.

Examples

  1. { ".*#...", "......", ".#...#", ".....#", ".....#" }

    Returns: 13.5

    This is the example from the problem statement.

  2. { "..............................", "..............................", "..........#...................", ".........#*#..................", "..........#...................", "..............................", "..............................", "..............................", "..............................", ".............................." }

    Returns: 295.0

    A 30x10 room with every square in shadow, exept for the 4 squares with posts and the 1 square with the light.

  3. { ".#....*", "##.....", "#......" }

    Returns: 1.166666666666666

  4. { "..........", "..........", "..........", "###..#####", "..........", "*........." }

    Returns: 29.27777777777778

  5. { "...........", "...........", "......#....", "........#..", "..........#", "..........*" }

    Returns: 25.43333333333333

  6. { "*" }

    Returns: 0.0

  7. { "*.................................................", "................................................#." }

    Returns: 0.9948453608247689

  8. { "*................................................#", ".................................................." }

    Returns: 0.00515463917525949

  9. { "..", "..", "#.", "..", "..", "..", "..", "..", ".#", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "*." }

    Returns: 9.662844928099489

  10. { ".......", ".#####.", ".#...#.", ".#.*.#.", ".#...#.", ".#####.", "......." }

    Returns: 24.0

  11. { "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................*................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "................#.................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................." }

    Returns: 47.8215130023641

  12. { "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "...........................................#......", "..................................................", ".............#....................................", "..................................................", ".......................#..........................", "..........#.......................................", "..................................................", "..................................................", "..................................................", ".......#..........................................", ".............................................#....", "..................................................", "..................................................", "..................................................", ".....#............................................", "....................*..........................#..", "..................................................", "..................................................", "..................................................", ".........#........................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..............#...................................", ".............................................#....", "..................................................", "..................................................", "..................................................", ".....................#............................", "..................................................", "..........................................#.......", "................................#.................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................." }

    Returns: 232.03796899200506

  13. { ".............", ".........#...", ".............", "....#........", "........#####", "......#......", "..#...#...*..", "......#......" }

    Returns: 73.13333333333333

  14. {"..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#*#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..................................................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#"}

    Returns: 1821.633787742454

  15. {".........*", "..........", "..........", "..........", "..........", "..........", "...#......", "..........", "..........", ".........."}

    Returns: 7.384615384615387

  16. { "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "#########*##################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################", "############################################" }

    Returns: 0.0

  17. {".#..#.####.#..#.###.##...####.#..####.##..#.###.##", "###.#.#..#########.####.#...###..##.##.####..##.#.", "##.####.###....######.##..#.###.###..###.###..####", "#.###..###.##.#####.#.#.##.##.#.###.####..#.#.##.#", "..#.####.##..#.#..####.####.#.##....#.####.###.##.", ".####...#####..###.###....#.#.##..#.####.##.#.#..#", "..#..####.#..#.#..#..##.#.#.##.###.######.###.###.", "..##.#..######.##.#..##.#.##....#####..##..#####.#", "###..###..#.##.##.######.#####.##.#.#..##.##..#.##", "#.###..##...#..##.##...###.#.####..#.##..##.#####.", "...########..#####.#..#...#.#..#.#.###.####.......", "###.#..#..##.##.###.##...####..#.#####.#.#..##.#.#", ".####..#.###.###..#.###.##....#######.##.###.###.#", "##.###.###..#.###.##..#.#####.####..###..##.#.#.##", "#.#..##..##.##########.########....###.#####..####", ".####.###.#..#..####.#####..###..###.##..###..#.#.", ".#...###..##.###.#.#.##..####..#.##.###..######.##", "##.#...#########...#.######.###..#############...#", "..##..#.##..#.##.....#..#.##.##....##....#..##.##.", ".#.####.#..#######.#.#..##.##..###.###.##.....#..#", "#....#...#.###...#.###.####.##..##.####.#######...", ".#..#.###..##.###.#...#.##.###.###...##.###.###...", "#####.#...#..#.#.#####...######.##.##...######..##", "#..#.#...#..##.##.##..#..##..#.##..###.#......#...", "##.#.##...##..###.#.###.###..##.###..#.###..#.####", "#...##.......#.#.##.#...#..###..######...##.##.#..", "###.#.##.##.##..###.......###...##.####..#.####.##", "###..##.#.#.###########.#.##..##.##.##.#.#.###.#.#", "...#.#...###.##.###.##..######.#..#...#.#...##.#..", "##.#######..#.#..##..##.##..##..#.#.##.######.###.", "###...##.######...###.#.###...####.#.#.####.#...##", "#..#..##..#..#.#####.##.#*#.##..#.#.#.#.#####.###.", "##.#.###..#.#...#..#.#.#.#......#.#..##.##.#...##.", "#..####.#.##.###.#.###..#...##...#.##.#.###..#.##.", ".#..#.#..#..#.##.###.##..######.#.##.###.#.###..##", "#.##.#......###..###.#..#..#####...#.###.#.#.#.#..", "######.#..##...#..#.#.##...####..#######...#.#####", "###.##.#.#.##....##...#.#..#.#..#########.#####.##", "####.########..#.#.#...##.##..#.#.##...#.#####..##", "...#.#.##...#.#..##.##.########..##...##....####..", ".....##.#...###.##..#####..#.#..##....#.##..#.#.#.", "###.#######.###.#####.##..#....#######.#..##..####", "###.##..#.#.##..#.###.#.##....###.####.#...#.#..#.", "#####..#.#.#..#######.#####.....##....#.####.....#", "...######.##.###.##.#.###.###.#.#..######...###..#", "##.#.#####.##.#...######..#.##..#.###.#....#.#..##", ".####.######..##.#.####.##.####..##..#.##....#...#", ".....#.##.##...###.####.#.#..#...#.#####..#...##.#", "######.###.#.###..###..#.##...####....#####..#.###", "##.#.#.#.########...#.##...#...######.#..#.######."}

    Returns: 1022.0

  18. {"#.##...##.#..###.#...#..##..#.###.####....#.###..#", "....#..#..#.##..#####...####.#.##.##.##..##.#####.", "##.##..#..#...###...##.#..#..###.####..###...#####", "#....#...##..###.#..#.#.###...#.########....#####.", "....#.###.#.##..#.#####.#..##.####..###....###...#", "#.#.##....##.#.#.......##.##.#.#.#..##...#.#.#.#..", "#######...#..#....#....#..#.##..####...##.###...##", "#.#..#.###..#....##..#.####.##...###.#.##.#....##.", ".#...##..#....#.#..##.##.##.#..##.#.#.##.#.#..#.##", "#..#......#..#.#..###....##.##....#..#.##....#....", "#..#.#....#.##.#.#####..##.....#....####.#.#.#####", "#########.##...#.##...#.####.##.....###########.##", "..##....#..#####...#.#.#.#.##..####....#..##.#.#..", ".##..#..##.#.###.#.##.#.#.#..#.##..#..##....#..#..", "..#..#####.....####....#.#....#.#.#.#.##.#..###..#", "...##.#..#..##.#.#####.#.##..##..####.#...##.#..#.", ".##.#.#.#...##.#.#.#.#..###.#.##..#.#.##.#.##..###", "##.###...###..#..#.#.###.#.#.##.##.###.#....#.#.##", "##..######......###..##..##...##.##...#######.#..#", ".#.##..###..#..####.#.#.####.########..###.####.##", ".##.....#.#...####..#.####..#.#.....#.#.##.#......", "######..#.#..#.#.###.###..###.#....####.##....###.", "#...#....#.#.#..#.#..#....#.....#.#...#...#....#.#", "...##.###.##..#..#.#.##.##..#...#.#.###.###.#..##.", "#.#######..#.#....#.##########.##.####..###..#....", ".#..#....##.##.####...#.#.##..#....#####.###.#.##.", "##.#...#..#.......#..##..##.#####...#..##...######", "#....#.#....##.##...###.#.#.#....#..##.#.##...###.", "....#####.#..#####.#######.####.....####.##.#.####", "##.###..#.#..#.#....##..##.#...###..###..##.#.##..", "######.#..##.###.#...#..#.###...##.#...#.#........", "....##....#.#.####..##.#....#.#.#.#..######......#", "#.##..#..#.##.###...##.####..###.##.##.########...", "###.#.######.##...#..##..#.##..##..#....#....#.##.", "#.#...##..#.......#####.#..#.#....#####..#..#...##", "..#...#####..#....#...##...#.......#.##.#.######.#", "##..####.##.###..##..#......###.##.##.#.#..##.#.##", ".##.####....#.#####..##.#......#####.#.#..###...#.", "..####..#.##.###.##.#..##.#....##..####.##.#...##.", "..##...#.#....#.####.##...###....###.#..#.###..#..", "..#..##.#.########.######...###.#..##..#.###....##", ".###.##..##.###.##.#.####...#.#####.##.##...#..###", "###.#.##..#....#.#.#.####.##..##...#.##..##.####.#", "##......###...######.#.#.#.##.#..#.#....#.#.......", "####.##.#.##...##.#..######.#.#.###..#.....#####.#", "...######.#####*..####...###..#...#..#..######.#.#", "......###.##.#.####.###..#.###...##..#.#.##.####.#", "....#...##..##...#.##.#..####.##.##.#.#.#.###.#..#", "#####..#..#.#.##.#.#.#####.............#..##....#.", ".#.##..#...#.######....#.##...###.#####.##.##..#.#"}

    Returns: 1205.8333333333333

  19. {".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#*#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#."}

    Returns: 1249.0

  20. { ".......#..", "#...##....", "..*.......", ".......#..", ".....#.#..", "..........", "..#.#.#...", "#.........", ".#........", ".........." }

    Returns: 43.103896103896105

  21. { "....#....#", ".*........", ".........#", "..........", "..#..##.#.", "..#.#.....", "..#.......", "#......#..", ".....#....", "..##.#...." }

    Returns: 38.3942057942058

  22. { "....#......#........", "...................#", "..#....#....#.#...#.", "......#.#...#.......", "......#.#......#....", ".#..#...............", "................#...", "..........#.........", ".......##.....##....", "..............#.....", "...#.......#.......#", "*...##..............", "..........#..#......", ".....##.............", ".......#............", "...........#..#..#..", "....##..#...#...#...", "....#....##......#..", "...#................", "......#...#.......##" }

    Returns: 236.4488957550877

  23. { ".##..#..#...##.#....", "...#.........#.####.", "#..#..#...##...#.#..", "#.#....#..##...#...#", "..##........#.##....", "#.........#.#.......", ".....#...........##.", "#...##..#.....#.#..#", "....#...##....##..#.", "#.#.#....##.#....#.#", "###..#.#..####.##...", ".#...........#...#..", "#.#....#.......##..#", ".#.##..#.#......##.#", ".##..........#....#.", "..#...#.....#...*...", "..#........#...##..#", "....#.....###.##...#", "...#..#.#.#..#......", "...#..........#.#..." }

    Returns: 260.5165266106443

  24. { "#.............................", "..#...........................", "..............................", ".....#........................", "....#....#.......#............", ".........#....................", "..............................", ".....................#.....#..", ".............................#", "......#.....................#.", ".........#......#.............", "..............................", "...#..#.#.......#...........*.", "......#...#...................", ".................#.........#..", "..............................", "..................#....#......", ".#............................", "....................#.........", ".............#................", "..............................", ".............#................", "..............................", ".....#........................", "..#...........................", ".....#..#.....................", "..#.........#.................", "..............................", "...#..............#...........", ".............................." }

    Returns: 486.002967471171

  25. { "..#.#....#...............#....", ".#.#..........................", "............##..............#.", ".#....#.............#.......#.", "..............#.............#.", ".#....#..#....#...#..#........", "......#.......#....#..........", "#.......#..#..................", "......#....#...........##.....", "...#.....................#....", "..........#...................", "..............#..#.....#.#..#.", "......#...............*.......", ".......#.#......#..##.....#...", ".........................#....", "....#.....#......#.......#....", "............#....#........#...", "...............#..............", "...#............#.......#.....", ".....#...................##..#", "....#...#.....................", "..............................", "...........#...............#..", "...........#..................", "....#.........................", "....###........#..............", "......................#.......", "........................#....#", "..............................", "...#......#..................." }

    Returns: 543.3264285802532

  26. { "......##......#.....#..#..#...", "......#...#............#....#.", "..###....#.#.#.###....#.......", "#........#.#...#..##....#..#..", "#..#.#.##.#..#..#.........#...", "..............#...........#...", "........#..#####..##.....#.##.", ".#...##...#....##...##........", "#....#.#......###....###......", "...#....#..##....##...#.......", "........#.....................", ".#..#...#.#..##..##..#.#.#....", ".#...#...#######..............", ".........#..#...#...#.........", "....##..#.#..####..#.....##...", "#.#......#.#.#.#.....##..#..#.", "..#................##......#..", "##....#.....##..###....#..##..", "..#..#..##....###.#...........", "#.#.####...#....#.....###..#..", "#.##.#..#..#.##..#..#.....#.##", "........##...##....#.#.#..#...", "..#..#.......##..#.##......##.", "#.........#........##....*.#..", "...#..##.##....##...........#.", "##.....#............#.#..#....", ".....#..##....###.#..#...#....", ".#........##..##.#.#..#.....#.", ".....#..#....#....#......#....", ".#...........#..........#....." }

    Returns: 608.2202412708889

  27. { ".#........#.............................", "........................................", "...................#.....#........#.....", "........................................", "........................................", ".......................#................", "........................................", "...............#........................", "........................................", "........................................", "........................................", "........................................", "#........................#..............", "....................#...................", "........................................", "........................................", "........................................", "........................................", "...........#............................", "........................................", "........................................", "...#....................................", "........................................", "........................................", "........................................", ".............#..........................", "........................................", "....#...................................", "........................................", "................................#.......", "........................................", "........................................", "..............#.........................", "........................................", "........................................", "................#.......................", "........................................", "..*.....................................", "............................#...........", "..#....................................." }

    Returns: 451.90178776878656

  28. { "..........#...................#..#......", "............#.........#.................", "........*.#..#..........................", ".................#......................", "........................................", "......#........................#.......#", ".#.....................#.....#..........", "........................................", ".......................................#", "...........................#............", "...................#....................", ".............................#..........", "......#..........................#....#.", "........................................", "........................................", "........................................", "........................................", "........................................", "........................................", "................................#.......", "........................#...............", ".....................................#..", "...#...........#........................", "........................................", "...........#............................", "....................#...................", "........................................", ".......#................................", ".....................................#.#", ".........#...........#..................", ".........#..............................", "........................................", "..........................#.............", "..............#.........................", "........................................", "..................................#.....", "........................................", ".....................#..................", ".............#..........................", "........................................" }

    Returns: 659.5853547545345

  29. { ".#.......#.....................##.......", ".....#.....#..#......................#..", "..........#.#....................#......", "...#..........#.....#..............#....", ".........#..............................", ".............#..........................", "........................................", "..............................#.#.......", "................................#.......", "......#.................................", "......*.....#.......#...........#.......", "........................................", "..............#.........................", "...#..................##................", "..........#......#......................", ".........#......#.#.....................", "...............#........................", "...........#........#........#..........", "##....#.....#........................##.", ".............#......##.......#......#...", ".............#.............#....#.......", "#.......................................", "........................................", "................#.......................", ".............#..........................", ".............................#..........", "........................................", "...............#..............#.........", "...#...................#................", "................#.........##............", ".......#.#..............................", ".............#.......#.....#............", "........#...............................", "...#................................#...", "..#.......#.................#...........", ".........................#..........#...", "..#.......#...........#.#..#..........#.", ".............................#..........", "........#.............#....#............", "........................................" }

    Returns: 1000.8274140683238

  30. { "........#.....#......................#..", "..........#..........##...........#.....", "...........#...#.................#......", "......#.....#....................#......", "........##.........................#....", "..#.......##................#...........", ".....#...........#....#............#....", "........................................", "...................#.......#............", "..#...............#..#.#.##......##.#...", "....##........#..................##....#", ".....#..#.........#..#.............#.#..", ".........##............#........#.#.....", ".......#.##.............##...#..........", ".#.........#.............#.#.....#......", "......#...........#........#..#.........", "...#.#...............#...........#......", "....#.............................#....#", ".#.................................#.#..", "......#..#..............#........#......", ".....#............##....................", "...........##..........#................", ".........#.....##...##...........#....#.", "..............#........#........#.......", "..#...#.....#...................#..#..#.", ".................#.................#....", "...#........#..................#.......#", ".........#..............................", "....##....#........#....##......#.......", "......#............#.....#........#.....", "................................#...*...", "............##.......................#..", ".........#..#.........#........#......#.", ".....#..................#.#......#.....#", "...#.............#.........#.......###..", ".....#....................#....#........", ".......##.....#.....................#...", "......#..................#.............#", "#.............#.......#.......#.....#...", ".#.................#...............#..##" }

    Returns: 1292.2716721721895

  31. { ".#.......#.#...#.#.#....................", ".......#..#.......#.#..........##.......", "........#...#..#.......#.#..##..#.....#.", "..#.........#.........#.#...#...........", "...................#...#....#....#..#...", ".........#.....#.....#.......#..........", "#....#...#..#..#..#...#..#...........#..", "....................#.....#.#....#.....#", "..#..#...........##........#.#..#.......", "..................#......#......###..#..", "..##....#.........#.................#...", "...#...............#...##.....#.....#.#.", "#...............#.#...#................#", "#.#...#...#...#......#.........#........", "#..#.....................##.#..#....#...", ".#..........#..#.........#..............", ".....#.#....#.....#.....#..#.....#.#....", ".......#..........##........#.......#...", ".#....#..#....#....................#..#.", ".....#...........#......................", "..##.#......#..##..#..............#...#.", ".#......#....##....................#....", "#....#........#..##.........#...........", ".....#................#.#.#.............", ".....#....#...#.#.............#.........", "......#.................#...........#...", ".....#....###...#......................#", "..#.#.#......###....#....##...##........", ".........#...#..#.#..#.....#..#.........", "....#..#.#.....#...#...#................", ".........#..#..............#......#.#.##", "..#........#.........#.........#....#.#.", "...#...#.....#....#.......##*###.....#..", "..........#........#..##....#.#.........", "......#...#..........#.#..#.#....#.#....", "#..#...#............#....##......#.#....", "..#....#...#...#..#...#....#.........###", "...#....#....#.......#.........#........", ".#..#.....###........#.##.....##..#.....", "...##..#.......#......##................" }

    Returns: 1278.6770200841934

  32. { "....#......#......#...#......#.........#", "...........#.#........#..#....#.......##", ".#..#.#........#.....#.....#.........#..", "..#.#.#..#.........#.......#..###.....#.", ".#.....#.....#....#.........#...#.......", "....#..#............#...#..#..#.......#.", ".###...##..##.....#.......#......##.....", "..#.....##..........#.........##..#..#..", "..#....#.#.....#...##..........##.#.....", "...#..#.#.#....#......#...........##...#", ".#.....#...#........#...#.....#......#.#", "....###.......#.........#....#......#...", "...##..#...##..#.......#.#..#......#....", ".....#...#...#....#........#.......##...", "##...........##.#...........#....##.#.#.", "....#.........#.#.#.#........#..###....#", ".#.#........#......#.......#.....#.#...#", ".......#.....#.#...........#............", ".#........#....#.#..........#.##....#...", "#...#..#.#.##.#...#....#.#.#..........#.", "................#..##..#.#.....#...####.", ".#....#...#.........................#..#", ".#....#............#.#.#...#......#..###", ".#.#..................#.................", ".#...#..#...#...#.#.#..##...##.....#####", "..#..#.........#..##.#.......#...#......", ".##...#.#..#.#.#.....#.....#...........#", "....#......#...#.###..##.........#....#.", "...#......#.#.#..#...#............#.....", "#.#..............#.#........#........#..", "..#........#..#......#...#..............", "....#.#.....#.....................##..#.", "........#.......#.............#.....#.##", ".....#..##............#...............#.", "#.......#.......#....................#..", "#.*........#.....#......#.....#...#...#.", "#..............##..#...#.#.............#", "....#.....####.#..............##.......#", "......#...#.#...#.....#...#.#...........", "#..#..#....#....#...#..#.........#......" }

    Returns: 1209.247998151323

  33. { ".#.#...#..##..#######.#.###.###.##......", ".#.#####..#.#.#.#..#..###.*..##....##.#.", ".#..#..#....##.#.#.#.#.#...##.#...##.#.#", "###.###.####..##.#..#.#...##...#####....", "##.#.#.#.#.#........##.#.####..##.###.##", "###.##.#...##...#.##...#.###.####.##.#..", "#####..##.....###.#..#....#.#.###.#.#.#.", "#...##.#.####...###...#.######.....##...", "..#...####....#.###.#.#........#........", "..##.#.##.#..#...#.####...#..####.#...##", "#...#.##..##.#.##...##.###..##.#...#.#..", "#...#.#.#.###.##....###.##..##.#..##..##", "#....#.#..##..##.#..#..#.##......#.##.#.", "..##..#.####.##..##.##...###.###.######.", "#.#.####.#.###.#.##.##....#...#.#..##...", "#.####.##.##..###.#..#.....##..#.######.", "...####.##..#.###.#..##.##......##.#....", "##..####..#.#.#.#.##....###..##.#..###..", ".#.#.#.#..#.##.#.##.#.##.#.####.....#..#", ".###.#.#.#.###.##.####..####...#...#...#", "##..####.#.####..###.#....#.#.##...#....", "###....#..#..###....###..#......#....#..", ".......#..#..###.#......##..#..##..##...", "##.#.#########..#..#.#.......##...####..", ".####.#.##....#.#####.#.....##.##...###.", "#..##...#..#.#....#.#..#..#.#.#.#..##.##", "#.#.#..#####..###..#.##..###..#...#..###", ".#.....#.#...###.##.....##..#..#.###.###", "....#.###......#.......##...#..##...####", ".#####..#..##...###.##..#.#..#.##.######", "#.###...##...##.##......####..##.##.#.##", "#..##.#..##...#.######.##...#.#.#.#####.", "##.#...#...###.######.#.......####.#.#..", "##....#..##..##..#..#.......#.#.#.##.#.#", ".##.#.#..###.##.##...#.#####.......#.#..", ".#.##...#.##.....###.##.###.##...####.#.", "#..####...#...#.#.###..#.#.#...##..#.#..", "#.....#.#.#.#.####....#..#.#...###.##..#", "##..##.##....#####.##..#...##...#.#.####", "###.####..#.#...####.#..###.####....####" }

    Returns: 803.3

  34. { ".............#....................................", "...#......................#.......................", ".........#...............................#........", "..................................................", "..................................................", "......#...........................................", "..................................................", "...........................................#......", "..................................#...........#...", ".....................#............................", "..................................................", "............................................#.....", "..................................................", "..................................................", "................................#......#..........", "...........................................#......", ".............................#...#................", "..................................................", "..................................................", "..................................................", ".............#....................................", "..................................................", "....................#...............#.............", "...............................#..................", ".....#............................................", "......................#.....................#.....", "..................................................", "....#.#.............#......#......................", "............................................#.....", "..................................................", "..................................................", "........................#.........................", "..................................................", "..................................................", "..................................................", "............#.......#...*.....................#...", "............#.....................................", "..#...#......................#.....#..............", "..#...............................................", "..................................................", ".........................................#........", "................................#.................", "#..............#............................#.....", "..................................................", "......................#...........................", "............................................#.#...", ".........#........................................", "......................#...........................", "............#.................................#...", ".................................................." }

    Returns: 1086.467564810995

  35. { "........................................#.........", "..........#....................................#..", "..................................................", ".......................................#..........", "..................................................", "..................*...............................", "..................................................", "..................................................", ".............#.................#..................", "....................#.............................", "..#..............#..........#.....................", ".......................................#..........", "..................................................", "........................#.........................", ".....#.................................#..........", "..................................................", "..................................................", ".................................#................", "....................#......................#......", "#......#........#....................#............", "....#...............#.............................", ".......#.#........................................", "..................................................", "..................................................", ".........#........................................", "............................#.....................", ".........................#....#...................", "...................#..............................", "..................................................", ".................................#.#..............", ".....#............................................", "....................#..........#..................", "......................#........#......#.......#...", "..................................................", "..................................................", "...........#...............#......................", ".#................................................", "...............................#..................", "#.................................................", "..............................#...#...............", "..................................................", "..................................................", "...................................#..............", ".................................##...............", "..................................................", "...............................#..................", ".#................................................", ".................................#................", ".............#...............##...................", "...#.............................................." }

    Returns: 1293.4540484870654

  36. { ".........................###......................", "...........................#......................", ".........#........................##..............", "..................................................", "........#..............#.........#................", ".............................................#....", "....#.............................................", "....#.......#........#............................", ".........................................#........", "#..............................#..................", "........#.................................#.......", "..........#........................#.........#.#..", "............................#.....................", "............................................#.....", "..................................#........#......", "..................................................", "#........................................#........", ".........................#....#.........#.........", ".#.................................#..............", ".....................#......................#.....", "..................................................", ".........#....................#...................", "........................................#.........", "..................................#....#..........", ".......................................#..........", ".#...............#....................#........#..", ".................................#................", "....#...................#.........................", ".......................................#..........", "..............................#...................", "..........#.......................................", "...#..............................................", ".....................#....#....#.#............#...", "..............................................#...", ".............................#....................", "..................................................", "......................................*...........", "..............#..............................#....", "..................#...............#...............", "..................................................", ".......#..........................................", "................................#.....#.......#...", "..................................................", "....#.........................................#..#", "..........#..............#........................", "...................#...................#..........", "#..........#..............#................#......", "..................................................", ".......................#..........................", "...............................................#.." }

    Returns: 1367.3917807674648

  37. { ".......#........#.................................", ".........................................#........", "..................................................", ".................#.....#..............#...........", "..................................................", "...#.........................#....................", "..................................................", "...........#.......#..............................", "..................................................", "............#.....................................", "................##...........#....................", "......#........................................#..", ".......................................#..........", "..................................#...............", "................#.....................#...........", "#.................................................", "..................................................", "...........#......................................", "...................#.................#............", "..................................................", "..................................................", "......................#...........................", "..................................................", "..................................................", "..................#......#........................", "..................................................", "........................#....#....................", ".........#.............#..........................", "..................................................", "..................................................", "..................................#......#....#...", "......#........................................#..", "..................................................", "..................................................", "..................................................", "..................................................", "...................#........#.....................", ".............................#.....#..............", "......#..*..................#.#.............#.....", "........................#..........#..............", "..#.....................#.........................", "..................................#.#.............", "....#.........##..................................", "...#.#............................................", "..................................................", "..................................................", "..................................................", "..................................................", "....................#.............................", "......#...#..................#...................." }

    Returns: 1047.4813917710135

  38. { ".....#............................#........#......", "..................................................", "#.....................#...........................", "..................................................", "...............................#..................", "...............#..................................", ".........#.............................#..........", "............................................#.....", ".............#...............#....................", "..................................................", ".......................#........#.................", "...#..............................................", "...............................*...............#..", "..................................................", "............................................#.....", ".............#.#...................#..............", "..................................................", "..................................................", "...........#......................................", "#....#............................................", "......#...........................................", "..................................................", ".....................................#............", "..................................................", "..................................................", "...#....#...................#.....................", "..#..............................................#", ".......#.....#....................................", "........#.........................................", ".....#..#.........................................", "..................................................", "..................................................", "..................................................", "......#...........................................", "..................................................", "..................................................", "#.................................................", "........#...#...#.......#.........................", "...........................#......................", "..................................................", "..................................................", "..#........................#..#.....##............", "..................................................", "..................................................", "................#...............#.......#...##....", "........................#.........................", "...............................#.........#........", "#.........................................#.......", "...................#............#...........#.....", "...#.....#......................#.............#..." }

    Returns: 747.6024139412198

  39. { "...#..............................................", "......................#.........................#.", "..................................................", "..................................................", "....#...........................#.................", "...............................#................#.", "............................................#.....", ".......................#..........................", ".................................#................", "............................#.....................", "..................................................", "..................................................", "........................#.........................", "....#.............#...............................", "....................................#.............", "..................................................", "..................................................", "........................................#.#.......", ".....................#............................", "..................................................", "..........#.................................#.....", "..................................................", "...........................#........#.............", "...............#.................................#", "..............................................#...", "................#......................#..........", "..................................................", "........#..............................#........#.", "...#..............................................", "....#.............................................", "#.................................................", "...............#..................................", ".......#..........................................", "..................................................", "........#.........................................", "..#....#.............................#............", "..................................................", ".....#.......#......#.#...##............#.........", "...............................................#..", "....#..........................#.............#....", "...............................................#..", "..................................................", "..................................................", "..................................#...............", "..................................................", ".....................................#............", "..................#.........#......#..............", ".#.........#..#.............*.....#...............", "..................................................", "........#...................#....................." }

    Returns: 2004.918862148973

  40. { "..........#....#..................................", "................#.................................", ".....#........#.....................#.............", "....#.#...................................#.#.....", ".....................#........#...................", "..................................................", "......................#..........#................", "..........................................#.......", ".................#................................", "..................##.#............................", "....#.............#........................#......", ".....#...#....#...................................", ".........................#......................#.", "...................#.....#....#.....##.......#....", "..............#....#...#..#.......................", "#...............................#.................", "........................#..............#..........", "..#...#....................................##...#.", "#...........................##...............#....", ".......................#..#.......................", "............#..................................#..", "*................#......#........#...#............", ".......................................#..........", "..................................................", ".................#..........#.....#.......#.......", "....#.#...#.......#...................#..#........", "..........#..#............##......................", "..................................................", "...#.....................#....................#...", ".................#...................#...##.......", ".......................##.#..#....................", "......................#...........................", "..#..............................................#", "...............................................#..", "......#.#.#......##............#.......#...#......", "....#.......#.#.............#.........#...........", "#...............................................#.", "....................#...........................#.", "...................#...#.....................#....", ".....................................#......#.....", ".......#...........#.....#.#............#.........", "...#..............#.......#...............#.......", ".......#..................................#.......", "...............................##........#........", "...........#...............#......................", "..........................#.......................", ".........##.............................#.........", ".#........#.............................#.........", "........................#...#.....................", "................#..................#.............." }

    Returns: 1870.544802503996

  41. { "......#......#....................................", "....#.............................................", "..................................................", "........#....#....#.................#.#...........", ".............#.............#......................", ".......#.........#.............................#..", "..........#...#..........#................#.......", "..............................#...................", "............#.........#........#....#............#", ".................#................................", "........#.................#.......................", "#.....#...........................................", "..............................................##..", ".............#.......................#...........#", "...................#..............................", ".......................#......#..............#....", ".................................##...............", "...........#......................................", ".........#..........#.............................", ".....................#.#..#............#..........", "...................................#..............", ".............#.................##............#....", "...............................#..#.....#.........", "........#.........#.*.#.....................#.....", "..........##...#........#........#................", "#.................................................", ".............................................#....", "...............#..#.............#..........##.....", "......#........#..................................", "..................................#...............", "....................................#.#...........", "...............#...........................#......", ".#..................................#............#", ".............#.................#...............#..", "....................................#............#", ".....................#.........................#..", ".......##.....#...................................", ".................#....#.......................#...", "..........................#...#.....#.........#...", "...................................#..............", "...........#....#.............#..#.............#..", ".........#........#.......................#.......", ".....#....................#........#..............", "..........................#.......................", ".........................#........................", "............#..........#.#..........#.............", "................................................#.", "..#............#..................................", "............................#.........#...........", ".................##.#.......#...............#....." }

    Returns: 1699.610413669151

  42. { "......##..............................#...........", "#...#.............................................", "...............#.........#...............#........", "..................................................", "...........................................#....#.", "........#........#....#.......#...#....#..........", "........#....#....................................", ".............#...........#...............#........", "..................................................", "..#...........................#...................", "............#....#.......................#........", ".......#.........................#................", ".........#........................................", ".......#......#.........#...#.#........#..........", "............#...#................#................", "...............#....#.............................", "..........................#......#................", ".........#...................................##...", ".................#.........................#......", "..................................#.#.............", ".......................#................#.........", "...#....#.........................................", "...............................................#..", ".......#..................................#.......", ".......#...............#.............#............", "........#............#................#...........", "......................#...........................", "..........#..............................#........", "..#....................##.........................", "................................#............#..#.", "....#..#....#....#....................#......#....", ".................................#..............#.", ".....#..........#..#..............................", "..................#.#.............................", "..#...................#........#..................", "...#......##..................................#...", ".......#.........*...............#................", ".....#....................................#.......", "..........#........................#..............", "................................#...........#....#", "....................................#......#..#...", "...#...........................##........#........", "......................................#...........", ".........................#........................", "#.................#.....#.#.......................", "............................................#.....", "..............#..#..........#..........#..........", "#.................................................", ".........##.......................................", ".....................#....#......................." }

    Returns: 1645.6394724456159

  43. { ".#...#.....#.#...#.......#..#........##...#......#", "#.##..#.............#.#.........#.....#....#......", "......#.............##..........#.......#........#", "#.#.#......##....#............#...#.....#.........", "............#....#.........#........#..##..##...#.", ".#...#........#.#........................#.......#", "#......#..#*..#........................#.......#..", ".........#....#...........#.....#..#..............", "..#..............#.....#.#..#...#.................", ".#................#...#........#..###.##..........", "##.......#....##.........#...............#........", ".....#..#....#.#...#.#.....##....#..............#.", "..#..#.#.......##.......................#..#....#.", "....#.##.....#....#......#..#......#....#..#..#..#", ".......#...#.#..........#.............#...........", "......#......#....................#...#.....#.....", ".#.....#.#........#..#.........#........#....###..", "#......#.......#...#.###...#....#......##.........", "....##...#..........#....#..#....##.........#....#", ".................................#.#....#..#......", "........#......#...............#....#....#.....#..", "..............##..............#...##..............", "..................#.............#..#........##....", ".........#..#...#.........##.........##...........", "...........#..##...........#...#.......#.....#.#..", ".............##....##.#.##...........#......#..#..", "............#........#.#..#...#........#........#.", "##...#............##...............#.#...........#", ".#........##.................#.#.#....#......#....", "............##......#..............#.#..........##", "......####............................#...........", "....................#...#.#...#.......#...........", "..##......#........................#.........#.#..", "...#.......#......##.#........#........#..........", ".....#.......#.....#..............#......#..#....#", ".....#......#.#...##..............##..............", "#........#.#......#....................#.....#....", "...............................#......##..#......#", ".......#....#.......#..........###.##..##....#....", "#.#............#......#.......##......#.....#.....", "...#...#......#..#.........#..#.......#..#........", ".....##.##...##......#........#..............#....", "..##..#..............###.............#..##........", "..........#.###.............#.......#.........##..", "........#.......................##........#.......", ".................#.........#..........#......#..#.", "#.#.......#.........#....#..#....#..#.............", ".................#..#..##.....#.......#...#...#.#.", "..................#....#..#........#.#....#.......", "......#...........#.......#....#...........#......" }

    Returns: 2026.0765171349203

  44. { "..#....................#....#...#.......#.#.#...#.", "..#..#.......#......#.......#....#...#............", "...#...#....#........#...........#....#.......#...", "..#......#.#.....#...#.......###......#...........", "..#...##............#..#......#...................", "....#.##.#...#.............#..........#.....#.....", "....#...............#..........##.#......#..#....#", ".......#...........##.....#..................#....", ".#.......##......#....................#......#....", ".....#...........#..#.##............#...#......#..", "##*.##..#.#.#..#..##..............................", ".......#.........##.........#........#............", "......#..............#..........###...#....#..#.#.", ".#.#............#.#........#..................#...", "...#.....................#..#..#.........#........", "......#.#.#....##...##...#........#...#....#...#..", "#......##.......#.....#..#..........#...#..#......", "...#............#.......#.......#.#.......#.......", "...#...#................#......#.......#......#.#.", ".#.....#............#....#..#.#..........#..#...#.", "........#................#.....................#..", ".#..#................................#....#...#...", ".............#.......#.....#.....#......##.#......", "..#..#..#...#.........#...##...................#..", "................#.....#...#....##.............####", "......#.#.....................#.....#.....#.##....", ".#..........#..............#..##....#......#......", ".........#....#.........................#...#.....", ".#...#.......#....#.....#...........#...........#.", "..#....#.............#.............#.............#", "..........#.......................#..##.......#..#", ".......................#..........................", ".....#....................................#.......", ".......#....#.....#..#................#.........#.", "....#...#....#...........#.#.....#..##.#..#.......", ".#..........#...#....#...........#..........#.....", "....#.........#.#......#.........##.....#..##...#.", "....#........###..#......#...#.....###...#.....#..", ".##......#......#....#.#......#.................#.", "...#.....#..#...#......#.....#.#......#...........", "#......#..............##.....##.......#...#.......", "........#.#.##...#...........#..#..............#..", "..#...............##.#...#...#....##........#...#.", "................#....#.......#...#...#............", "...#...............#.....#.......#......#.........", "..#.#..........#.................##.....#.#.......", ".......#.#...#..#####......#.........#........#...", "#.#........#.......#.....#.##............#..##....", "#........#....#.......#....#......................", "##..........##...#.......#.....#...............#.." }

    Returns: 2075.45593331154

  45. { ".#..#.....#...#....#.....##.......#...#...##..#..#", ".#.#.#..#............#.......#.........##..##..#..", ".........#.....#.....#.##.#..#.........#....#.#...", "........##...#.........#.#.##.##..#....#..........", ".#...#........###...........#...........#...#.....", "...#...............#..............##..#.##.#.....#", "...#.............#.....##..#.#.#....#...........#.", "..#.....##.#.##.......#........#................##", "......#.#..#..#..........#.....#..#...............", "...#....##...#.............##..#.#....#..###.####.", "....#.......#...##.#.###.....##....#....#.........", ".............#.....#...#..........#.#...#.#..#....", "#...#............#...#....#...#..............#...#", ".......##..#.#...#....#.#......##...##....#.......", ".#.............#.#..#.....#.....##...##..#....#.#.", "........##......##.#......#...##.........#...#.#..", "....#.##...#.....#..#......###.#......##.#......#.", "#................#.#..###.#..##...##.#.......#....", "..#.#....#.....#...#.....................##...#...", ".#........##.........#..#.#...#........#.#.......#", ".....#..#.........#...#..#...#...#...##...#.......", "...............#...........#....#.....###.....#...", "...#.....##.....#...#.#...#...........#.......##..", "#.#.##.##...............#...#..........#...#...#..", ".........#...#..#..#.....##...#...#.#.........#...", ".#....#..#.............#.#.#....#.....#..#.#...#..", ".....#..#..###..........#.##..#.#....#....#.......", "..#.###....#.........##.........#...#..#..#..#..##", ".............#......#.................#..#.###....", ".#....#..#....#..##.#.......##.##..#...#...#......", "....#.#.....#..........#...#..##.#..#.#..##..#....", "##.....#............................#..#.......#..", "....#....#...#.....#..###....#.#....##..##.......#", ".....#.............#..#.........#.....#....#...#..", "...........#.#............#......#..#......#...#..", ".#.#......#..#....#.....#...#...##....###.........", "....#......#.#..##...#..#.#.#.#...##.........*....", ".........#.......#..#.......##....#...#.#.........", ".............#......#......###...........###...#..", "#.......#...#...#...###...............#.##..#.....", ".....##........##..##...#......#.#....#...#.......", ".........##...............#..#.##.........#.#.....", "..##...#..##..#..#.#..............#...##..........", ".............##....#......#...#.......#..#........", "...#..............#.....#.....#.#.....#.#....#....", "..........#...#..#...##.....#...#..##...#....#....", ".....#....#............#..#.................#.#...", ".#.......###..#.......#.................##....#..#", "....#..#..#.......#............###..#.##..#.......", ".#.....#......#.#.#.....#......#......#.#......#.#" }

    Returns: 1887.1905815770804

  46. { "###........#.##.....#.#.#....##.#...#..#....##..#.", ".....#........#..#...#..##....##..................", ".....#..#..#...........#....#.....#....#..........", "#....#.......#.......#...###..#.#.#..##.###..#....", ".............#....#......##.#.....#....#..........", "......#..................#.#.....#...#...#.....#.#", ".#............#.....#...#..#........#..##........#", "##..#...........#.#.##..........#....#.#......#...", ".#..#....#.#.....#........#......#.............##.", "#.#....#.##...........#####.....#.....##.........#", "...........#....*.....#...#....#.#...#.#.##..#.#..", ".##.#..#.##.............#...#..............######.", "..#........#...#......##.....##.#.......#....#..#.", "......###..............##..#....#..............#..", "#.....#.....#....#....#.#...##..###...........#...", ".#...#...#...#.....##.#.........#.#....#....#.....", ".....#..#..#.....###.....#.......#.....##........#", "#...#..#..#...#.............##.....#...#....#.#...", "...............................#...#.#.#...#.#....", "..#.#.#.#..................##.....#...#..#.....#..", "....#.#.#...............#.#####..##..#............", ".........#...#.#...........#..#...###.#.#....#.#.#", "..#..#...#..##......#.#.........#..#..#......#...#", "..#...........#......##...#.....##.##....##.....#.", "...#.#............##......#............#...#.#....", "#........#......#####......#........#..##......#..", "...#.#...#...##....#..#....##........##....#.#.#..", "#.......#........#..#.#.......#..#.#....#..#......", ".....#.##......#...##..............#..#...#......#", "....##...#......#.#......#..#.#...#....##....##...", ".............#....#.......#.#...#.#....#......#.#.", ".......#..#..............#..##.......#.#..#..##...", ".......###..#.#.....#..#.#.......###..........#...", "....#......#....#......#.##.....#..........#.#....", ".#.....#.......#.......#.......#..#....#.#........", ".......#.##.#......#........................#...#.", ".#..................#..#...............#..#...##..", "...###..#.......#...##.....#....##...#.........#..", "..#.#.......###..#.............#..#......##..#....", "...#....##.................#......#...............", "..#...#......##....##..##..#....#....##.#..#......", ".#.#..........#....#...#.#......#.....#..#........", "....#...#..................#........##..#.........", ".#...##...##...........#.#.#.....#.........###....", "#.#......#....#...........................#..#....", "##.....#.#.#..#.#..#............#.....##..#......#", "#....#.................#.#...#...#..##...##...#...", ".###...#...#.........#...###....#....##...#..#.#..", "..#...........#..#.#..#.......#.............#....#", "...............##.....#.....#........#.....#...#.." }

    Returns: 1845.8811702579496

  47. { "#################################################.", "*.................................................", "#################################################." }

    Returns: 1.989690721649481

  48. { "################################################..", "*................................................#", "################################################.." }

    Returns: 3.968204015192619

  49. { "################################################..", ".................................................#", "*................................................#", "################################################.." }

    Returns: 3.9364080303852518

  50. { "#############################################.....", "#############################################.....", "*.............................................####", ".............................................#####", "############################################......", "############################################......" }

    Returns: 21.748121309144167

  51. { ".......................................###########", "######################################...........*" }

    Returns: 37.0


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: