WIP: Day 20 part 1.
Algorithm works, too slow.
This commit is contained in:
parent
10f30eb274
commit
aeb0d108ee
4 changed files with 220 additions and 1 deletions
|
@ -18,4 +18,9 @@ fun Grid.Coordinate.step(direction: Direction, steps: Int = 1) =
|
||||||
Direction.East -> copy(x = x + steps)
|
Direction.East -> copy(x = x + steps)
|
||||||
Direction.South -> copy(y = y + steps)
|
Direction.South -> copy(y = y + steps)
|
||||||
Direction.West -> copy(x = x - steps)
|
Direction.West -> copy(x = x - steps)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Grid.Coordinate.neighbors(distance: Int = 1): Sequence<Grid.Coordinate> =
|
||||||
|
Direction.entries
|
||||||
|
.asSequence()
|
||||||
|
.map { step(it, distance) }
|
||||||
|
|
58
2024/src/main/kotlin/day20.kt
Normal file
58
2024/src/main/kotlin/day20.kt
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
fun main() {
|
||||||
|
val maze = CharGrid.read("day20-sample.txt")
|
||||||
|
val start = maze.find('S') ?: error("No start position")
|
||||||
|
val end = maze.find('E') ?: error("No end position")
|
||||||
|
|
||||||
|
val paths = maze.findPaths(start, end)
|
||||||
|
|
||||||
|
val total = paths.first { !it.cheated }.time
|
||||||
|
println("Time without cheating: $total")
|
||||||
|
val part1 = paths.count { it.time <= total - 100 }
|
||||||
|
println("Part 1: $part1")
|
||||||
|
|
||||||
|
paths.sortedBy { it.time }
|
||||||
|
.groupBy { it.time }
|
||||||
|
.forEach { (time, list) ->
|
||||||
|
val saving = total - time
|
||||||
|
println("${list.count()} x $saving")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
data class MazeResult(val time: Int, val cheated: Boolean)
|
||||||
|
|
||||||
|
fun CharGrid.findPaths(
|
||||||
|
position: Grid.Coordinate,
|
||||||
|
goal: Grid.Coordinate,
|
||||||
|
visited: Set<Grid.Coordinate> = emptySet(),
|
||||||
|
time: Int = 0,
|
||||||
|
cheated: Boolean = false
|
||||||
|
): List<MazeResult> {
|
||||||
|
if (position == goal) {
|
||||||
|
return listOf(MazeResult(time, cheated))
|
||||||
|
}
|
||||||
|
|
||||||
|
val newVisited = visited + position
|
||||||
|
|
||||||
|
fun canVisit(position: Grid.Coordinate): Boolean =
|
||||||
|
position in this && position !in newVisited && this[position] != '#'
|
||||||
|
|
||||||
|
val paths = position.neighbors()
|
||||||
|
.filter { canVisit(it) }
|
||||||
|
.fold(mutableListOf<MazeResult>()) { list, next ->
|
||||||
|
list.addAll(findPaths(next, goal, newVisited, time + 1, cheated))
|
||||||
|
list
|
||||||
|
}
|
||||||
|
|
||||||
|
return if (cheated) {
|
||||||
|
paths
|
||||||
|
} else {
|
||||||
|
position.neighbors()
|
||||||
|
.filter { it in this && this[it] == '#' }
|
||||||
|
.flatMap { it.neighbors() }
|
||||||
|
.filter { canVisit(it) }
|
||||||
|
.fold(paths) { list, next ->
|
||||||
|
list.addAll(findPaths(next, goal, newVisited, time + 2, true))
|
||||||
|
list
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
15
2024/src/main/resources/day20-sample.txt
Normal file
15
2024/src/main/resources/day20-sample.txt
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
###############
|
||||||
|
#...#...#.....#
|
||||||
|
#.#.#.#.#.###.#
|
||||||
|
#S#...#.#.#...#
|
||||||
|
#######.#.#.###
|
||||||
|
#######.#.#...#
|
||||||
|
#######.#.###.#
|
||||||
|
###..E#...#...#
|
||||||
|
###.#######.###
|
||||||
|
#...###...#...#
|
||||||
|
#.#####.#.###.#
|
||||||
|
#.#...#.#.#...#
|
||||||
|
#.#.#.#.#.#.###
|
||||||
|
#...#...#...###
|
||||||
|
###############
|
141
2024/src/main/resources/day20.txt
Normal file
141
2024/src/main/resources/day20.txt
Normal file
|
@ -0,0 +1,141 @@
|
||||||
|
#############################################################################################################################################
|
||||||
|
#.....#...#...........#.........###...###.............#...#...#.......#...#.....#...#...#...###...#####.....#.......#.............###...#...#
|
||||||
|
#.###.#.#.#.#########.#.#######.###.#.###.###########.#.#.#.#.#.#####.#.#.#.###.#.#.#.#.#.#.###.#.#####.###.#.#####.#.###########.###.#.#.#.#
|
||||||
|
#.#...#.#.#.........#.#...#...#.....#.#...#.........#.#.#...#.#.#.....#.#...#...#.#...#.#.#.#...#...#...#...#.....#.#...#.........#...#...#.#
|
||||||
|
#.#.###.#.#########.#.###.#.#.#######.#.###.#######.#.#.#####.#.#.#####.#####.###.#####.#.#.#.#####.#.###.#######.#.###.#.#########.#######.#
|
||||||
|
#.#.#...#.#...#.....#.###...#.......#.#...#...#...#...#.....#.#.#.#...#.#.....###.....#...#.#.#.....#...#.###.....#.....#...........#.....#.#
|
||||||
|
#.#.#.###.#.#.#.#####.#############.#.###.###.#.#.#########.#.#.#.#.#.#.#.###########.#####.#.#.#######.#.###.#######################.###.#.#
|
||||||
|
#.#.#...#.#.#.#...#...#...#.........#.#...#...#.#.#...#...#.#...#...#.#.#...#...#...#.#.....#.#.###...#.#...#.....#...#...............###.#.#
|
||||||
|
#.#.###.#.#.#.###.#.###.#.#.#########.#.###.###.#.#.#.#.#.#.#########.#.###.#.#.#.#.#.#.#####.#.###.#.#.###.#####.#.#.#.#################.#.#
|
||||||
|
#.#.#...#...#.....#...#.#.#.........#.#.#...###.#...#...#.#...#.......#.#...#.#.#.#.#.#.#.....#.#...#.#...#...#...#.#...#...#...#.......#...#
|
||||||
|
#.#.#.###############.#.#.#########.#.#.#.#####.#########.###.#.#######.#.###.#.#.#.#.#.#.#####.#.###.###.###.#.###.#####.#.#.#.#.#####.#####
|
||||||
|
#.#.#.....#.........#.#.#...........#...#.#...#...#.....#.###.#.#...#...#...#.#.#.#.#.#.#.....#.#.#...#...#...#...#.......#...#...#.....#...#
|
||||||
|
#.#.#####.#.#######.#.#.#################.#.#.###.#.###.#.###.#.#.#.#.#####.#.#.#.#.#.#.#####.#.#.#.###.###.#####.#################.#####.#.#
|
||||||
|
#.#...###...###.....#.#.........#.....#...#.#.###...#...#...#.#...#.#...#...#.#...#...#.#.....#...#...#...#...###.#...........#.....###...#.#
|
||||||
|
#.###.#########.#####.#########.#.###.#.###.#.#######.#####.#.#####.###.#.###.#########.#.###########.###.###.###.#.#########.#.#######.###.#
|
||||||
|
#.#...#...#...#.....#.###...#...#.#...#...#.#.#.....#...#...#...#...#...#...#...#.......#.#...#...#...###...#.....#.........#.#.#.....#.#...#
|
||||||
|
#.#.###.#.#.#.#####.#.###.#.#.###.#.#####.#.#.#.###.###.#.#####.#.###.#####.###.#.#######.#.#.#.#.#.#######.###############.#.#.#.###.#.#.###
|
||||||
|
#.#...#.#.#.#.......#...#.#.#.#...#...#...#.#.#...#.#...#.#...#.#.....#...#.#...#.......#.#.#...#.#.#...#...#...............#...#.#...#.#...#
|
||||||
|
#.###.#.#.#.###########.#.#.#.#.#####.#.###.#.###.#.#.###.#.#.#.#######.#.#.#.#########.#.#.#####.#.#.#.#.###.###################.#.###.###.#
|
||||||
|
#...#...#.#.#.....#.....#.#.#...#...#.#...#.#...#.#.#...#.#.#.#.#.......#...#...#.......#...#...#.#.#.#.#...#.............#...#...#...#.#...#
|
||||||
|
###.#####.#.#.###.#.#####.#.#####.#.#.###.#.###.#.#.###.#.#.#.#.#.#############.#.###########.#.#.#.#.#.###.#############.#.#.#.#####.#.#.###
|
||||||
|
#...#.....#...#...#.....#.#...#...#...#...#...#.#.#...#.#...#...#.....#.....#...#.#...#...#...#...#.#.#.#...#.......#...#.#.#...#.....#.#.###
|
||||||
|
#.###.#########.#######.#.###.#.#######.#####.#.#.###.#.#############.#.###.#.###.#.#.#.#.#.#######.#.#.#.###.#####.#.#.#.#.#####.#####.#.###
|
||||||
|
#...#.....###...#.......#...#.#.....#...#...#.#.#.#...#.......#.......#...#.#.#...#.#.#.#.#.....#...#.#.#...#.....#...#.#.#.#.....#...#.#...#
|
||||||
|
###.#####.###.###.#########.#.#####.#.###.#.#.#.#.#.#########.#.#########.#.#.#.###.#.#.#.#####.#.###.#.###.#####.#####.#.#.#.#####.#.#.###.#
|
||||||
|
#...#...#...#...#.#.....#...#.#...#.#...#.#.#.#.#.#...#.......#.....###...#.#.#...#.#...#.#...#.#.#...#.....#.....#...#...#.#.......#...#...#
|
||||||
|
#.###.#.###.###.#.#.###.#.###.#.#.#.###.#.#.#.#.#.###.#.###########.###.###.#.###.#.#####.#.#.#.#.#.#########.#####.#.#####.#############.###
|
||||||
|
#.#...#...#.....#.#...#.#...#...#...#...#.#.#.#...#...#...........#...#...#.#.#...#.#...#...#...#.#...#.......#...#.#.#...#...#...........###
|
||||||
|
#.#.#####.#######.###.#.###.#########.###.#.#.#####.#############.###.###.#.#.#.###.#.#.#########.###.#.#######.#.#.#.#.#.###.#.#############
|
||||||
|
#.#.#####...#...#...#.#.###.........#.###.#...#.....###...#...###...#.#...#...#...#.#.#.#.....#...#...#.....###.#.#.#.#.#.....#.......#...###
|
||||||
|
#.#.#######.#.#.###.#.#.###########.#.###.#####.#######.#.#.#.#####.#.#.#########.#.#.#.#.###.#.###.#######.###.#.#.#.#.#############.#.#.###
|
||||||
|
#.#...#...#...#...#.#.#...#...#.....#...#.....#...#...#.#.#.#.#...#.#.#...#...#...#...#...#...#.#...#.......#...#...#.#.#...........#...#...#
|
||||||
|
#.###.#.#.#######.#.#.###.#.#.#.#######.#####.###.#.#.#.#.#.#.#.#.#.#.###.#.#.#.###########.###.#.###.#######.#######.#.#.#########.#######.#
|
||||||
|
#.....#.#.........#...#...#.#.#.....#...#...#.#...#.#.#.#.#.#.#.#.#.#.###.#.#...#...###...#.#...#...#.###...#.#.....#...#.........#.#.......#
|
||||||
|
#######.###############.###.#.#####.#.###.#.#.#.###.#.#.#.#.#.#.#.#.#.###.#.#####.#.###.#.#.#.#####.#.###.#.#.#.###.#############.#.#.#######
|
||||||
|
###...#.......#...#...#.....#.....#.#.....#...#.#...#.#.#.#.#.#.#.#.#.#...#.#.....#...#.#.#.#.#...#.#.#...#...#...#.......#.......#...#...###
|
||||||
|
###.#.#######.#.#.#.#.###########.#.###########.#.###.#.#.#.#.#.#.#.#.#.###.#.#######.#.#.#.#.#.#.#.#.#.#########.#######.#.###########.#.###
|
||||||
|
#...#...#...#...#...#...#...#...#.#.........#...#...#...#.#.#.#.#.#.#...#...#.......#.#.#.#.#.#.#.#.#...#.........#.....#.#...#...#.....#...#
|
||||||
|
#.#####.#.#.###########.#.#.#.#.#.#########.#.#####.#####.#.#.#.#.#.#####.#########.#.#.#.#.#.#.#.#.#####.#########.###.#.###.#.#.#.#######.#
|
||||||
|
#.#...#...#.............#.#...#.#.......#...#...#...#.....#.#...#.#.....#...#...#...#.#.#.#.#.#.#.#...#...#...###...#...#...#...#...#...#...#
|
||||||
|
#.#.#.###################.#####.#######.#.#####.#.###.#####.#####.#####.###.#.#.#.###.#.#.#.#.#.#.###.#.###.#.###.###.#####.#########.#.#.###
|
||||||
|
#.#.#.#...#...............#...#.......#.#...###.#...#...#...#...#.#.....###...#.#.#...#.#.#.#.#.#.#...#.....#...#.#...#...#.........#.#...###
|
||||||
|
#.#.#.#.#.#.###############.#.#######.#.###.###.###.###.#.###.#.#.#.###########.#.#.###.#.#.#.#.#.#.###########.#.#.###.#.#########.#.#######
|
||||||
|
#...#...#...###...#.......#.#.........#...#...#.#...###.#.#...#...#.........#...#.#.#...#...#.#.#.#.#.........#...#.#...#.....#...#...#...###
|
||||||
|
###############.#.#.#####.#.#############.###.#.#.#####.#.#.###############.#.###.#.#.#######.#.#.#.#.#######.#####.#.#######.#.#.#####.#.###
|
||||||
|
#...............#.#.....#.#.........#...#.....#.#.#...#...#.#.....#...#.....#.#...#.#.#.......#.#...#.....###.....#...#.......#.#.......#...#
|
||||||
|
#.###############.#####.#.#########.#.#.#######.#.#.#.#####.#.###.#.#.#.#####.#.###.#.#.#######.#########.#######.#####.#######.###########.#
|
||||||
|
#.....#.....#...#.....#.#.###.......#.#.###...#...#.#...#...#...#.#.#.#.....#.#.###.#.#.#.....#.#.......#.......#...#...#...#...#...........#
|
||||||
|
#####.#.###.#.#.#####.#.#.###.#######.#.###.#.#####.###.#.#####.#.#.#.#####.#.#.###.#.#.#.###.#.#.#####.#######.###.#.###.#.#.###.###########
|
||||||
|
#.....#.###...#.#...#...#.....#.......#.....#.......#...#...#...#.#.#...#...#.#...#...#...###.#.#.....#.#...#...#...#...#.#...#...#...#...###
|
||||||
|
#.#####.#######.#.#.###########.#####################.#####.#.###.#.###.#.###.###.###########.#.#####.#.#.#.#.###.#####.#.#####.###.#.#.#.###
|
||||||
|
#.....#.#.......#.#.............###...#...#...#.......#.....#...#.#...#.#...#...#...#...#...#...#.....#...#...###.....#...#...#.....#...#...#
|
||||||
|
#####.#.#.#######.#################.#.#.#.#.#.#.#######.#######.#.###.#.###.###.###.#.#.#.#.#####.###################.#####.#.#############.#
|
||||||
|
#...#.#.#.........#...#.............#...#...#.#.......#.....#...#.#...#.#...###.#...#.#...#.#...#.........#.........#...#...#...#.......#...#
|
||||||
|
#.#.#.#.###########.#.#.#####################.#######.#####.#.###.#.###.#.#####.#.###.#####.#.#.#########.#.#######.###.#.#####.#.#####.#.###
|
||||||
|
#.#.#...#.....#.....#...#...................#.........#.....#.###.#...#...#...#...###.....#...#.#.......#...#.......###...#...#...#...#...###
|
||||||
|
#.#.#####.###.#.#########.#################.###########.#####.###.###.#####.#.###########.#####.#.#####.#####.#############.#.#####.#.#######
|
||||||
|
#.#.#...#...#.#...........#.................#.......###.....#...#...#.......#.#...###...#.#.....#...#...#.....#...#.....#...#...#...#.......#
|
||||||
|
#.#.#.#.###.#.#############.#################.#####.#######.###.###.#########.#.#.###.#.#.#.#######.#.###.#####.#.#.###.#.#####.#.#########.#
|
||||||
|
#.#...#.#...#...###...#...#...................#...#.......#.#...###.#.....#...#.#.#...#...#.....#...#.....#.....#...#...#.#.....#.#.........#
|
||||||
|
#.#####.#.#####.###.#.#.#.#####################.#.#######.#.#.#####.#.###.#.###.#.#.###########.#.#########.#########.###.#.#####.#.#########
|
||||||
|
#.....#.#.#...#.#...#...#.........#.....#...#...#.....#...#.#...#...#...#.#...#.#...#.........#.#...#.......#.........#...#.#...#.#.###.....#
|
||||||
|
#####.#.#.#.#.#.#.###############.#.###.#.#.#.#######.#.###.###.#.#####.#.###.#.#####.#######.#.###.#.#######.#########.###.#.#.#.#.###.###.#
|
||||||
|
#.....#.#...#.#...#.............#...###.#.#.#.......#.#.#...#...#.......#.#...#.#.....#...#...#.....#.#.....#.#...#...#...#...#...#...#.#...#
|
||||||
|
#.#####.#####.#####.###########.#######.#.#.#######.#.#.#.###.###########.#.###.#.#####.#.#.#########.#.###.#.#.#.#.#.###.###########.#.#.###
|
||||||
|
#.#...#.......#...#.#.....#.....#.....#.#.#.#...#...#...#.....###...#...#...###...#.....#...#...#...#.#...#.#...#...#.....#...#.....#...#...#
|
||||||
|
#.#.#.#########.#.#.#.###.#.#####.###.#.#.#.#.#.#.###############.#.#.#.###########.#########.#.#.#.#.###.#.###############.#.#.###.#######.#
|
||||||
|
#.#.#...#.....#.#...#...#.#...#...#...#...#...#.#.................#...#...#...#.....#...#...#.#.#.#.#...#.#.......#.......#.#...###.#.......#
|
||||||
|
#.#.###.#.###.#.#######.#.###.#.###.###########.#########################.#.#.#.#####.#.#.#.#.#.#.#.###.#.#######.#.#####.#.#######.#.#######
|
||||||
|
#.#.###...###...###...#.#.....#...#.......#...#.......#.....#.....#.......#.#.#.....#.#...#.#.#...#.....#.......#.#.....#.#.......#.#.......#
|
||||||
|
#.#.###############.#.#.#########.#######.#.#.#######.#.###.#.###.#.#######.#.#####.#.#####.#.#################.#.#####.#.#######.#.#######.#
|
||||||
|
#...#.......#...#...#...#.....#...#.......#.#.#...###.#...#.#...#...###...#.#.#...#...#.....#.#...#.............#...#...#.........#.#.......#
|
||||||
|
#####.#####.#.#.#.#######.###.#.###.#######.#.#.#.###.###.#.###.#######.#.#.#.#.#.#####.#####.#.#.#.###############.#.#############.#.#######
|
||||||
|
#...#.....#.#.#.#...#.....#...#...#.#.......#...#...#.#...#...#.#...#...#...#...#.....#.......#.#.#...............#.#.....#...#.....#...#...#
|
||||||
|
#.#.#####.#.#.#.###.#.#####.#####.#.#.#############.#.#.#####.#.#.#.#.###############.#########.#.###############.#.#####.#.#.#.#######.#.#.#
|
||||||
|
#.#.......#...#.....#.....#.....#.#...#.............#.#.#...#.#...#.#S###############.#...#.....#.................#.......#.#.#...#.....#.#.#
|
||||||
|
#.#######################.#####.#.#####.#############.#.#.#.#.#####.#################.#.#.#.###############################.#.###.#.#####.#.#
|
||||||
|
#.............#...#...#...#...#...#...#.............#.#.#.#.#.......#################...#...#.....#...........#.............#...#.#.......#.#
|
||||||
|
#############.#.#.#.#.#.###.#.#####.#.#############.#.#.#.#.#################################.###.#.#########.#.###############.#.#########.#
|
||||||
|
#...........#.#.#.#.#...#...#.......#.....#.........#...#.#.#...#.....#######################E###...###.....#...#.....#...#.....#...........#
|
||||||
|
#.#########.#.#.#.#.#####.###############.#.#############.#.#.#.#.###.#################################.###.#####.###.#.#.#.#################
|
||||||
|
#.#...#...#.#...#...#...#...............#.#.......#...#...#...#.#.#...#########################...#...#...#.......###...#...#...............#
|
||||||
|
#.#.#.#.#.#.#########.#.###############.#.#######.#.#.#.#######.#.#.###########################.#.#.#.###.###################.#############.#
|
||||||
|
#...#...#.#...........#.....#...........#.........#.#.#...#.....#.#...#################.........#...#...#.................###.#.............#
|
||||||
|
#########.#################.#.#####################.#.###.#.#####.###.#################.###############.#################.###.#.#############
|
||||||
|
#.........#.....#.........#.#.......#...###...#...#.#...#.#.#...#.#...#...###.....#####.............#...#...#.............#...#.............#
|
||||||
|
#.#########.###.#.#######.#.#######.#.#.###.#.#.#.#.###.#.#.#.#.#.#.###.#.###.###.#################.#.###.#.#.#############.###############.#
|
||||||
|
#.#...#...#.###...###.....#.........#.#.....#...#...#...#.#...#...#.#...#.#...#...#.................#.....#.#.#...###.....#...#.....#.......#
|
||||||
|
#.#.#.#.#.#.#########.###############.###############.###.#########.#.###.#.###.###.#######################.#.#.#.###.###.###.#.###.#.#######
|
||||||
|
#...#...#...#...#...#.........#.......#...............#...#.........#...#.#.#...###...#.............#.....#...#.#.....#...#...#...#...#.....#
|
||||||
|
#############.#.#.#.#########.#.#######.###############.###.###########.#.#.#.#######.#.###########.#.###.#####.#######.###.#####.#####.###.#
|
||||||
|
#...#.........#.#.#.#.......#...#.......#...#...#...###...#...#...#.....#...#.....###...#...#.......#.#...#.....#.....#.....#...#.......#...#
|
||||||
|
#.#.#.#########.#.#.#.#####.#####.#######.#.#.#.#.#.#####.###.#.#.#.#############.#######.#.#.#######.#.###.#####.###.#######.#.#########.###
|
||||||
|
#.#.#.........#...#.#.#...#...###...#.....#...#...#.....#.#...#.#.#...#.....#.....#.....#.#.#.........#.....#...#...#.#...#...#.#.........###
|
||||||
|
#.#.#########.#####.#.#.#.###.#####.#.#################.#.#.###.#.###.#.###.#.#####.###.#.#.#################.#.###.#.#.#.#.###.#.###########
|
||||||
|
#.#.#...#...#...#...#...#...#.#...#.#...#...#.....#...#.#.#...#.#...#.#...#...#...#.#...#.#.#.....#...#.......#.....#...#.#...#.#...........#
|
||||||
|
#.#.#.#.#.#.###.#.#########.#.#.#.#.###.#.#.#.###.#.#.#.#.###.#.###.#.###.#####.#.#.#.###.#.#.###.#.#.#.#################.###.#.###########.#
|
||||||
|
#.#...#...#.....#...........#...#.#.....#.#.#...#...#.#.#.#...#...#.#.#...###...#.#.#.#...#.#.#...#.#.#.................#...#.#.#.......#...#
|
||||||
|
#.###############################.#######.#.###.#####.#.#.#.#####.#.#.#.#####.###.#.#.#.###.#.#.###.#.#################.###.#.#.#.#####.#.###
|
||||||
|
#.#.............#...............#.#...#...#.....#...#...#.#.#...#.#...#...#...#...#.#.#...#.#.#.#...#...#...#.....#...#...#...#.#.###...#...#
|
||||||
|
#.#.###########.#.#############.#.#.#.#.#########.#.#####.#.#.#.#.#######.#.###.###.#.###.#.#.#.#.#####.#.#.#.###.#.#.###.#####.#.###.#####.#
|
||||||
|
#.#...#.........#...#...........#...#...#...#...#.#...#...#.#.#.#.#.......#...#.#...#.#...#.#.#.#.....#.#.#...###.#.#.....#.....#...#.#.....#
|
||||||
|
#.###.#.###########.#.###################.#.#.#.#.###.#.###.#.#.#.#.#########.#.#.###.#.###.#.#.#####.#.#.#######.#.#######.#######.#.#.#####
|
||||||
|
#.#...#.....#...#...#.......#...#...#...#.#.#.#.#.#...#...#.#.#.#.#.#...#####.#.#...#.#...#.#.#.#...#.#.#.......#...#...###.....#...#.#...###
|
||||||
|
#.#.#######.#.#.#.#########.#.#.#.#.#.#.#.#.#.#.#.#.#####.#.#.#.#.#.#.#.#####.#.###.#.###.#.#.#.#.#.#.#.#######.#####.#.#######.#.###.###.###
|
||||||
|
#...#.......#.#.#.#.........#.#...#.#.#.#.#.#.#...#...#...#.#.#.#.#.#.#...#...#...#.#...#.#.#.#.#.#.#.#...#...#.......#...#...#...###...#...#
|
||||||
|
#####.#######.#.#.#.#########.#####.#.#.#.#.#.#######.#.###.#.#.#.#.#.###.#.#####.#.###.#.#.#.#.#.#.#.###.#.#.###########.#.#.#########.###.#
|
||||||
|
#.....#.......#...#...#...#...#.....#.#.#.#.#...#####.#...#.#.#.#.#.#...#.#...###.#.###.#.#.#.#.#.#...#...#.#...#...#...#...#.#...#...#.....#
|
||||||
|
#.#####.#############.#.#.#.###.#####.#.#.#.###.#####.###.#.#.#.#.#.###.#.###.###.#.###.#.#.#.#.#.#####.###.###.#.#.#.#.#####.#.#.#.#.#######
|
||||||
|
#.......#.............#.#...###.....#.#.#.#...#...#...#...#.#.#.#.#...#.#...#...#.#...#.#.#.#.#.#.....#...#...#...#...#...#...#.#...#.......#
|
||||||
|
#########.#############.###########.#.#.#.###.###.#.###.###.#.#.#.###.#.###.###.#.###.#.#.#.#.#.#####.###.###.###########.#.###.###########.#
|
||||||
|
#.....###.#...........#.#...###.....#.#.#.#...#...#...#.#...#.#.#.#...#...#.#...#.#...#.#.#...#.#...#...#...#...........#.#.....#...#.......#
|
||||||
|
#.###.###.#.#########.#.#.#.###.#####.#.#.#.###.#####.#.#.###.#.#.#.#####.#.#.###.#.###.#.#####.#.#.###.###.###########.#.#######.#.#.#######
|
||||||
|
#...#.....#.#.........#...#...#.....#.#...#...#.....#...#...#.#.#.#.#...#.#.#.###.#.#...#.....#...#.#...#...#...#.....#.#...#...#.#.#...#...#
|
||||||
|
###.#######.#.###############.#####.#.#######.#####.#######.#.#.#.#.#.#.#.#.#.###.#.#.#######.#####.#.###.###.#.#.###.#.###.#.#.#.#.###.#.#.#
|
||||||
|
###.....#...#.#...#...#...#...#.....#.###.....#.....#.......#.#...#.#.#.#.#.#...#.#.#...#.....#.....#.###.#...#.#...#...###...#...#...#...#.#
|
||||||
|
#######.#.###.#.#.#.#.#.#.#.###.#####.###.#####.#####.#######.#####.#.#.#.#.###.#.#.###.#.#####.#####.###.#.###.###.#################.#####.#
|
||||||
|
#.......#.#...#.#...#.#.#...###.......#...#...#...#...#.....#.....#.#.#.#.#...#.#.#.#...#.....#.....#.#...#...#...#.....#.......#.....#...#.#
|
||||||
|
#.#######.#.###.#####.#.###############.###.#.###.#.###.###.#####.#.#.#.#.###.#.#.#.#.#######.#####.#.#.#####.###.#####.#.#####.#.#####.#.#.#
|
||||||
|
#.#...#...#.#...#.....#...#.............#...#.#...#...#.#...#...#.#.#.#.#...#.#.#.#.#...#.....###...#.#.#...#.#...#...#...#...#.#...#...#.#.#
|
||||||
|
#.#.#.#.###.#.###.#######.#.#############.###.#.#####.#.#.###.#.#.#.#.#.###.#.#.#.#.###.#.#######.###.#.#.#.#.#.###.#.#####.#.#.###.#.###.#.#
|
||||||
|
#...#...#...#.###.....#...#...#...#.....#...#...#...#.#.#...#.#...#.#.#.....#.#.#.#...#.#.#...#...#...#.#.#...#...#.#.......#.#...#.#...#...#
|
||||||
|
#########.###.#######.#.#####.#.#.#.###.###.#####.#.#.#.###.#.#####.#.#######.#.#.###.#.#.#.#.#.###.###.#.#######.#.#########.###.#.###.#####
|
||||||
|
###...#...#...#.......#...#...#.#.#...#.#...###...#...#.#...#...#...#.....#...#.#.#...#...#.#...#...#...#...#.....#.........#.#...#...#.#...#
|
||||||
|
###.#.#.###.###.#########.#.###.#.###.#.#.#####.#######.#.#####.#.#######.#.###.#.#.#######.#####.###.#####.#.#############.#.#.#####.#.#.#.#
|
||||||
|
#...#...#...#...#.....#...#...#.#...#.#...#.....#...#...#.#...#.#.#...#...#.#...#.#.#.......#...#...#.#...#.#.....#...#...#.#...#...#...#.#.#
|
||||||
|
#.#######.###.###.###.#.#####.#.###.#.#####.#####.#.#.###.#.#.#.#.#.#.#.###.#.###.#.#.#######.#.###.#.#.#.#.#####.#.#.#.#.#.#####.#.#####.#.#
|
||||||
|
#.#.....#.###.#...#...#.#...#.#...#.#.....#.#...#.#.#...#...#.#.#.#.#...###.#...#.#.#...#.....#.#...#.#.#.#...###...#.#.#...###...#...#...#.#
|
||||||
|
#.#.###.#.###.#.###.###.#.#.#.###.#.#####.#.#.#.#.#.###.#####.#.#.#.#######.###.#.#.###.#.#####.#.###.#.#.###.#######.#.#######.#####.#.###.#
|
||||||
|
#.#.#...#.#...#...#...#.#.#...#...#...#...#...#.#.#.#...#...#...#.#.......#.#...#...#...#.#...#.#...#.#.#...#.#.......#.#...#...#...#...#...#
|
||||||
|
#.#.#.###.#.#####.###.#.#.#####.#####.#.#######.#.#.#.###.#.#####.#######.#.#.#######.###.#.#.#.###.#.#.###.#.#.#######.#.#.#.###.#.#####.###
|
||||||
|
#...#.....#.#...#...#...#.....#...#...#.....#...#.#.#.....#...#...#...#...#...###...#...#.#.#...#...#...###...#.......#...#...#...#...#...###
|
||||||
|
###########.#.#.###.#########.###.#.#######.#.###.#.#########.#.###.#.#.#########.#.###.#.#.#####.###################.#########.#####.#.#####
|
||||||
|
#...........#.#.#...###...#...#...#...#.....#.....#.#.......#.#...#.#...#.......#.#...#...#.....#.............###.....#.....#...#...#...#...#
|
||||||
|
#.###########.#.#.#####.#.#.###.#####.#.###########.#.#####.#.###.#.#####.#####.#.###.#########.#############.###.#####.###.#.###.#.#####.#.#
|
||||||
|
#.#.....#.....#...###...#...#...#...#...###.........#...###.#...#.#.......#...#.#...#.#.........#...#.........#...#...#...#.#.###.#.#...#.#.#
|
||||||
|
#.#.###.#.###########.#######.###.#.#######.###########.###.###.#.#########.#.#.###.#.#.#########.#.#.#########.###.#.###.#.#.###.#.#.#.#.#.#
|
||||||
|
#.#.#...#...#.........#.....#.....#.......#...#...#...#.#...#...#...#...#...#.#.#...#...#...#...#.#.#.........#...#.#.#...#.#.....#...#...#.#
|
||||||
|
#.#.#.#####.#.#########.###.#############.###.#.#.#.#.#.#.###.#####.#.#.#.###.#.#.#######.#.#.#.#.#.#########.###.#.#.#.###.###############.#
|
||||||
|
#...#.......#...........###...............###...#...#...#.....#####...#...###...#.........#...#...#...........###...#...###.................#
|
||||||
|
#############################################################################################################################################
|
Loading…
Add table
Reference in a new issue