Add 2024 Quests 17 - 19
This commit is contained in:
parent
5d1320bec9
commit
6632529d20
27 changed files with 1613 additions and 0 deletions
6
2024/day18_the_ring/Cargo.toml
Normal file
6
2024/day18_the_ring/Cargo.toml
Normal file
|
@ -0,0 +1,6 @@
|
|||
[package]
|
||||
name = "day18_the_ring"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
235
2024/day18_the_ring/challenge.txt
Normal file
235
2024/day18_the_ring/challenge.txt
Normal file
|
@ -0,0 +1,235 @@
|
|||
Part I
|
||||
|
||||
Near the rapidly constructed shrine of the god Nullpointer, a new area is being allocated for palm tree cultivation. The terrain of the desert is quite suitable for these plants but also challenging, requiring a well-planned irrigation system to ensure efficient growth.
|
||||
The irrigation system is a network of channels that will continuously supplies water to the trees. However, there are concerns about the distance over which an adequate amount of water can be delivered. The sun may evaporate the stream so quickly that the water disappears before reaching all the targets.
|
||||
The first palm farm is already under construction, but the knights are still analysing its design (your notes). The palm trees are marked with P , and the channels are marked with . . The remaining areas, marked as # , are designated paths for workers, and must remain at ground level.
|
||||
The edge of the farm has exactly one cell marked as part of the channel: . . This is where the water will enter the farm. Every minute the water spreads to all adjacent channel segments vertically and horizontally. The segments with palm trees are at the same level as the channel, and water can flow through them just like a regular channel segment.
|
||||
The task for the tournament challengers is to calculate the time needed for the water to reach all the palm trees from the moment the channel is supplied with water at the edge point.
|
||||
Example based on the following notes:
|
||||
##########
|
||||
..#......#
|
||||
#.P.####P#
|
||||
#.#...P#.#
|
||||
##########
|
||||
The water flow ( ~ ) starts from the left side and goes as follows:
|
||||
##########
|
||||
~.#......#
|
||||
#.P.####P#
|
||||
#.#...P#.#
|
||||
##########
|
||||
time: 0
|
||||
##########
|
||||
~~#......#
|
||||
#.P.####P#
|
||||
#.#...P#.#
|
||||
##########
|
||||
time: 1
|
||||
##########
|
||||
~~#......#
|
||||
#~P.####P#
|
||||
#.#...P#.#
|
||||
##########
|
||||
time: 2
|
||||
##########
|
||||
~~#......#
|
||||
#~P.####P#
|
||||
#~#...P#.#
|
||||
##########
|
||||
time: 3
|
||||
##########
|
||||
~~#......#
|
||||
#~P~####P#
|
||||
#~#...P#.#
|
||||
##########
|
||||
time: 4
|
||||
##########
|
||||
~~#~.....#
|
||||
#~P~####P#
|
||||
#~#~..P#.#
|
||||
##########
|
||||
time: 5
|
||||
##########
|
||||
~~#~~....#
|
||||
#~P~####P#
|
||||
#~#~~.P#.#
|
||||
##########
|
||||
time: 6
|
||||
|
||||
|
||||
##########
|
||||
~~#~~~...#
|
||||
#~P~####P#
|
||||
#~#~~~P#.#
|
||||
##########
|
||||
time: 7
|
||||
##########
|
||||
~~#~~~~..#
|
||||
#~P~####P#
|
||||
#~#~~~P#.#
|
||||
##########
|
||||
time: 8
|
||||
##########
|
||||
~~#~~~~~.#
|
||||
#~P~####P#
|
||||
#~#~~~P#.#
|
||||
##########
|
||||
time: 9
|
||||
##########
|
||||
~~#~~~~~~#
|
||||
#~P~####P#
|
||||
#~#~~~P#.#
|
||||
##########
|
||||
time: 10
|
||||
##########
|
||||
~~#~~~~~~#
|
||||
#~P~####P#
|
||||
#~#~~~P#.#
|
||||
##########
|
||||
time: 11
|
||||
All the palm trees receive water after 11 minutes.
|
||||
How much time is needed for the water to reach all the palm trees on the first farm?
|
||||
|
||||
Part II
|
||||
|
||||
The second farm will be much larger, but water will be supplied simultaneously from two points on opposite sides, so everything should be irrigated in reasonable time.
|
||||
Example based on the following notes:
|
||||
#######################
|
||||
...P..P...#P....#.....#
|
||||
#.#######.#.#.#.#####.#
|
||||
#.....#...#P#.#..P....#
|
||||
#.#####.#####.#########
|
||||
#...P....P.P.P.....P#.#
|
||||
#.#######.#####.#.#.#.#
|
||||
#...#.....#P...P#.#....
|
||||
#######################
|
||||
The water flow ( ~ ) starts simultaneously from the left and right sides and proceeds as follows:
|
||||
#######################
|
||||
~..P..P...#P....#.....#
|
||||
#.#######.#.#.#.#####.#
|
||||
#.....#...#P#.#..P....#
|
||||
#.#####.#####.#########
|
||||
#...P....P.P.P.....P#.#
|
||||
#.#######.#####.#.#.#.#
|
||||
#...#.....#P...P#.#...~
|
||||
#######################
|
||||
time: 0
|
||||
#######################
|
||||
~~.P..P...#P....#.....#
|
||||
#.#######.#.#.#.#####.#
|
||||
#.....#...#P#.#..P....#
|
||||
#.#####.#####.#########
|
||||
#...P....P.P.P.....P#.#
|
||||
#.#######.#####.#.#.#.#
|
||||
#...#.....#P...P#.#..~~
|
||||
#######################
|
||||
time: 1
|
||||
#######################
|
||||
~~~P..P...#P....#.....#
|
||||
#~#######.#.#.#.#####.#
|
||||
#.....#...#P#.#..P....#
|
||||
#.#####.#####.#########
|
||||
#...P....P.P.P.....P#.#
|
||||
#.#######.#####.#.#.#~#
|
||||
#...#.....#P...P#.#.~~~
|
||||
#######################
|
||||
time: 2
|
||||
|
||||
|
||||
#######################
|
||||
~~~P..P...#P....#.....#
|
||||
#~#######.#.#.#.#####.#
|
||||
#~....#...#P#.#..P....#
|
||||
#.#####.#####.#########
|
||||
#...P....P.P.P.....P#~#
|
||||
#.#######.#####.#.#.#~#
|
||||
#...#.....#P...P#.#~~~~
|
||||
#######################
|
||||
time: 3
|
||||
#######################
|
||||
~~~P~.P...#P....#.....#
|
||||
#~#######.#.#.#.#####.#
|
||||
#~~...#...#P#.#..P....#
|
||||
#~#####.#####.#########
|
||||
#...P....P.P.P.....P#~#
|
||||
#.#######.#####.#.#~#~#
|
||||
#...#.....#P...P#.#~~~~
|
||||
#######################
|
||||
time: 4
|
||||
... #######################
|
||||
~~~P~~P~~~#P~~~~#.....#
|
||||
#~#######~#~#~#~#####.#
|
||||
#~~~~~#~~~#P#~#~~P....#
|
||||
#~#####~#####~#########
|
||||
#~~~P~~~~P~P~P~~~~~P#~#
|
||||
#~#######~#####~#~#~#~#
|
||||
#~~~#~~~~~#P~~~P#~#~~~~
|
||||
#######################
|
||||
time: 21
|
||||
|
||||
All the palm trees receive water after 21 minutes.
|
||||
How much time is needed for the water to reach all the palm trees on the second farm?
|
||||
|
||||
Part III
|
||||
|
||||
The last of the farms is the largest, but it doesn't have any entry points for water sources at the edge. It turns out that there are groundwater reserves beneath the land and they are under high pressure, so it's enough to dig a big well (that occupies the entire segment) in the optimal spot and let nature take care of the rest.
|
||||
It has been found that water evaporates significantly when flowing through the channels, so the well should be dug at one of the channel segments marked with . where the sum of the times it takes for the water to reach all the palm trees is minimised.
|
||||
Example based on the following notes:
|
||||
##########
|
||||
#.#......#
|
||||
#.P.####P#
|
||||
#.#...P#.#
|
||||
##########
|
||||
One of the possible locations for the well is on the right side of one of the palm trees. The water flow ( ~ ) for that spot looks as follows:
|
||||
##########
|
||||
#.#......#
|
||||
#.P~####P#
|
||||
#.#...P#.#
|
||||
##########
|
||||
time: 0
|
||||
##########
|
||||
#.#~.....#
|
||||
#.P~####P#
|
||||
#.#~..P#.#
|
||||
##########
|
||||
time: 1
|
||||
##########
|
||||
#.#~~....#
|
||||
#~P~####P#
|
||||
#.#~~.P#.#
|
||||
##########
|
||||
time: 2
|
||||
##########
|
||||
#~#~~~...#
|
||||
#~P~####P#
|
||||
#~#~~~P#.#
|
||||
##########
|
||||
time: 3
|
||||
##########
|
||||
#~#~~~~..#
|
||||
#~P~####P#
|
||||
#~#~~~P#.#
|
||||
##########
|
||||
time: 4
|
||||
##########
|
||||
#~#~~~~~.#
|
||||
#~P~####P#
|
||||
#~#~~~P#.#
|
||||
##########
|
||||
time: 5
|
||||
##########
|
||||
#~#~~~~~~#
|
||||
#~P~####P#
|
||||
#~#~~~P#.#
|
||||
##########
|
||||
time: 6
|
||||
|
||||
|
||||
##########
|
||||
#~#~~~~~~#
|
||||
#~P~####P#
|
||||
#~#~~~P#.#
|
||||
##########
|
||||
time: 7
|
||||
The first palm receives water after just 1 minute. The second needs to wait for 4 minutes, and the third for 7 minutes.
|
||||
Summing these times gives a total of 1 + 4 + 7 = 12 minutes. Digging the well at any other location would result in a greater sum of times, so this is the optimal point for digging.
|
||||
Dig the well at the optimal point. What is the sum of the times it takes for the water to reach all the palm trees?
|
182
2024/day18_the_ring/src/lib.rs
Normal file
182
2024/day18_the_ring/src/lib.rs
Normal file
|
@ -0,0 +1,182 @@
|
|||
use core::fmt::Display;
|
||||
use std::collections::{HashMap, HashSet, VecDeque};
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub enum ParseError {
|
||||
EmptyMap,
|
||||
InvalidChar(char),
|
||||
}
|
||||
|
||||
impl Display for ParseError {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
Self::EmptyMap => write!(f, "Input was empty"),
|
||||
Self::InvalidChar(e) => write!(f, "Unable to parse {e}. Valid characters are \'.\', \'#\', and \'P\'."),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
type Coordinates = (usize, usize);
|
||||
|
||||
#[derive(Clone)]
|
||||
struct Map {
|
||||
walkable: Vec<Vec<bool>>,
|
||||
trees: Vec<Coordinates>,
|
||||
entries: Vec<Coordinates>,
|
||||
}
|
||||
|
||||
impl TryFrom<&str> for Map {
|
||||
type Error = ParseError;
|
||||
|
||||
fn try_from(value: &str) -> Result<Self, Self::Error> {
|
||||
let mut walkable = Vec::new();
|
||||
let mut trees = Vec::new();
|
||||
let mut entries = Vec::new();
|
||||
|
||||
for (y, line) in value.lines().enumerate() {
|
||||
let mut walkable_line = Vec::new();
|
||||
for (x, c) in line.chars().enumerate() {
|
||||
match c {
|
||||
'.' => walkable_line.push(true),
|
||||
'#' => walkable_line.push(false),
|
||||
'P' => {
|
||||
walkable_line.push(true);
|
||||
trees.push((y, x));
|
||||
},
|
||||
e => return Err(Self::Error::InvalidChar(e)),
|
||||
}
|
||||
}
|
||||
walkable.push(walkable_line);
|
||||
}
|
||||
if walkable.is_empty() {
|
||||
return Err(Self::Error::EmptyMap);
|
||||
}
|
||||
if let Some(x) = walkable[0].iter().position(|w| *w) {
|
||||
entries.push((0, x));
|
||||
}
|
||||
if let Some(x) = walkable.last().unwrap().iter().position(|w| *w) {
|
||||
entries.push((walkable.len()-1, x));
|
||||
}
|
||||
if let Some(y) = walkable.iter().position(|row| row.first() == Some(&true)) {
|
||||
entries.push((y, 0));
|
||||
}
|
||||
if let Some(y) = walkable.iter().position(|row| row.iter().last() == Some(&true)) {
|
||||
entries.push((y, walkable[y].len()-1));
|
||||
}
|
||||
Ok(Self { walkable, trees, entries, })
|
||||
}
|
||||
}
|
||||
|
||||
impl Map {
|
||||
fn water(&self) -> Vec<usize> {
|
||||
let mut open_set = self.entries.iter().map(|e| (*e, 0)).collect::<VecDeque<_>>();
|
||||
let mut to_collect = self.trees.clone();
|
||||
let mut visited: HashSet<Coordinates> = self.entries.iter().cloned().collect();
|
||||
let mut watering_times = Vec::new();
|
||||
|
||||
while let Some(((y, x), dist)) = open_set.pop_front() {
|
||||
if let Ok(idx) = to_collect.binary_search(&(y, x)) {
|
||||
to_collect.remove(idx);
|
||||
watering_times.push(dist);
|
||||
}
|
||||
if to_collect.is_empty() {
|
||||
return watering_times;
|
||||
}
|
||||
[(1,0), (1,2), (0,1), (2,1)]
|
||||
.iter()
|
||||
.filter(|(dy, dx)|
|
||||
y + dy > 0 &&
|
||||
y + dy <= self.walkable.len() &&
|
||||
x + dx > 0 &&
|
||||
x + dx <= self.walkable[y + dy - 1].len() &&
|
||||
self.walkable[y + dy - 1][x + dx - 1]
|
||||
).for_each(|(dy, dx)| {
|
||||
let new_pos = (y + dy - 1, x + dx - 1);
|
||||
if !visited.contains(&new_pos) {
|
||||
visited.insert(new_pos);
|
||||
open_set.push_back((new_pos, dist+1));
|
||||
}
|
||||
});
|
||||
}
|
||||
// We didn't find a path to all the plants
|
||||
Vec::new()
|
||||
}
|
||||
|
||||
fn best_watering(&mut self) -> Option<usize> {
|
||||
// Find the best spot by watering from the trees and noting how much combined time was
|
||||
// spent to reach it. Note that this isn't necessarily the spot we reach first.
|
||||
let mut open_set = self.trees.iter().enumerate().map(|(idx, t)| (*t, idx, 0)).collect::<VecDeque<_>>();
|
||||
let mut visited: HashMap<Coordinates, (Vec<usize>, usize)> = self.trees.iter().enumerate().map(|(idx, t)| (*t, (Vec::from([idx]), 0))).collect();
|
||||
|
||||
while let Some(((y, x), orig, dist)) = open_set.pop_front() {
|
||||
[(1,0), (1,2), (0,1), (2,1)]
|
||||
.iter()
|
||||
.filter(|(dy, dx)|
|
||||
y + dy > 0 &&
|
||||
y + dy <= self.walkable.len() &&
|
||||
x + dx > 0 &&
|
||||
x + dx <= self.walkable[y + dy - 1].len() &&
|
||||
self.walkable[y + dy - 1][x + dx - 1]
|
||||
).for_each(|(dy, dx)| {
|
||||
let new_pos = (y + dy - 1, x + dx - 1);
|
||||
if !visited.contains_key(&new_pos) || !visited.get(&new_pos).unwrap().0.contains(&orig) {
|
||||
visited.entry(new_pos).and_modify(|(trees, d)| {
|
||||
trees.push(orig);
|
||||
*d += dist;
|
||||
}).or_insert((vec![orig], dist));
|
||||
open_set.push_back((new_pos, orig, dist+1));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Now, exccluding spots with a tree in them, find the one with the best score.
|
||||
if let Some(entry) = visited
|
||||
.iter()
|
||||
.filter(|(coords, _)| !self.trees.contains(coords))
|
||||
.min_by_key(|(_coords, (_trees, dist))| dist)
|
||||
.map(|(coords, _)| coords)
|
||||
{
|
||||
self.entries.push(*entry);
|
||||
Some(self.water().iter().sum())
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn run(input: &str, part: usize) -> Result<usize, ParseError> {
|
||||
let mut map = Map::try_from(input)?;
|
||||
match part {
|
||||
1 | 2 => Ok(*map.water().last().unwrap()),
|
||||
3 => Ok(map.best_watering().unwrap()),
|
||||
_ => panic!("Illegal part number"),
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use std::fs::read_to_string;
|
||||
|
||||
fn read_file(name: &str) -> String {
|
||||
read_to_string(name).expect(&format!("Unable to read file: {name}")[..]).trim().to_string()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_sample() {
|
||||
let expected = [11, 21, 12];
|
||||
for part in 1..=expected.len() {
|
||||
let sample_input = read_file(&format!("tests/sample{part}"));
|
||||
assert_eq!(run(&sample_input, part), Ok(expected[part-1]));
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_challenge() {
|
||||
let expected = [103, 1383, 246261];
|
||||
for part in 1..=expected.len() {
|
||||
let challenge_input = read_file(&format!("tests/challenge{part}"));
|
||||
assert_eq!(run(&challenge_input, part), Ok(expected[part-1]));
|
||||
}
|
||||
}
|
||||
}
|
11
2024/day18_the_ring/tests/challenge1
Normal file
11
2024/day18_the_ring/tests/challenge1
Normal file
|
@ -0,0 +1,11 @@
|
|||
###############################
|
||||
...P#.....#...#P.....P#.....#P#
|
||||
#.###.###.#.#.#####.###.#.#.#.#
|
||||
#.#...#P#...#.#...#.....#.#...#
|
||||
#.#.###.#####.#.#.#.#####.###.#
|
||||
#...#.........#.#.#..P#...#P#.#
|
||||
#####.#########.#.#####.###.#.#
|
||||
#..P#.#.........#...#...#...#.#
|
||||
#.###.#.###########.#.###.#.#.#
|
||||
#.......#P............#P..#...#
|
||||
###############################
|
71
2024/day18_the_ring/tests/challenge2
Normal file
71
2024/day18_the_ring/tests/challenge2
Normal file
|
@ -0,0 +1,71 @@
|
|||
#########################################################################################################################################################################################################
|
||||
...P#..P...P#..P...P..#P......#P...P#...#.#.....PPP...#...#.P.....#.....#.....#P#.....#P.P...P..#...#.....#..P...P.P..#...#.....P..P......#P....P.PPP...#............P..#P......#.........#.....PP.P#...#
|
||||
#.#.#.#####.#.###.###.#.#####.###.#.#.#.#.#.#########.#.#.#.#.###.#.###.#.###.#P#.###.#.###.###.#.#.###.#.#.#########.#.#.#.###########.#.###.#########.#.#.###########.#####.#.###.#.###.###.#####.#.###
|
||||
#P#.#.#..P#.#..P#.#.#...#PP....P.P#...#.#.#P#.......#...#...#.#.....#P..#.#P..#.#...#P#.#P#.#.#P..#...#.#..P#.......#...#.#....P#..P..#.#P....#.......#.#.#.....#.....#P..#P..#..P#.#.#P#.#..P#.....#...#
|
||||
#.#.#.#.#.#.#####.#.#.#################.#.#.#.#####.#########P#########.#.###.#.###.#.#.#.#.#.#######.#.#####.#.#########.#####.#.#####.#######.###.###.#.#####.#.###.###.#.#####P###.#.#.#.###.#####.#.#
|
||||
#.#.#..P#P#P.P....#...#.....#..P..#P#....P#...#P..#.....#..P#.#...P...#P#...#....P#P#.#...#.#..P..#...#.....#.#........P#....P#...#.....#...#..P#P#....P#P....#P....#.#.#..P#...#.....#...#...#.#P.P#.#.#
|
||||
#.#.#####.#############.###.#.###.#.#.###########.#####.###.#.#.#####.#.###.#######.#.#.###.#.###.#.#######.#.#####.#########.#####.#####.#.#.###.###############.###.#.#####.#.#######.###.#.#.#.#.#.#P#
|
||||
#.#P#.....#..P.P...P.P#.#P#...#.#P#...#...........#P..#P.P..#...#...#.#...#...#P....#.#.#...#.#P..#P....P...#P#..P..#...P..P..#..P..#.....#.#.#.#....P..#..PP...#P#...#.......#P#...P...#P..#.#..P#.#.#.#
|
||||
#P#.#.###.#.#########.#.#.#####.#.#.###.#######.###.#.#####.#####.#.#.###.###.#.#####.#.#.###.###.#############.#####.#########.#####.#####.#.#.#.#.###.#.#####.###.###.#########.###########.#####P#.#P#
|
||||
#.#.#...#.#.#P....#P#P#.#.......#.#.#...#P...P#.....#...#...#.....#.#.#P#...#......P#..P#...#P..#....PPP.....PPP#...#P#.PP.....P#...#.....#...#...#.#P#P..#..P#...#P#......P....#.#...#P......#..P#.#.#.#
|
||||
#.#.###.###.###.#.#.#P#P#######.#.###.###.###.#########.#.###.###.###.#.###.#######.#######.###.###########.#####.#.#.#.#####.#####.#####.#####.###.#.#######.###.#P#.#######.#.#.#.#.#.#######.#.#P#.#.#
|
||||
#P#...#.#.PP#...#.#.#P#.#P......#.#P..#...#..P#.....#...#...#..P#.#..P#...#.......#P......#...#.......#..P#.#P.P.P#P..#P#...#.#.....#...#P#P....#...#......P#.#...#.#...#...#P#.#P#.#..P#P....#.#P#.#P#.#
|
||||
#.###.#.#.###.###.#.#.#.#.#####.#.#.#####.#.###.#.#.#.#.###.###.###.#####.#######.###########.#.#####.#.###.#.#########.#P#.#.#.###.#.###.###.###.#####.###P#.#.###.#####.#.###.#.#.#######.#.#.###.###.#
|
||||
#...#P#...#...#.#.#P#.#P..#..P#P#...#...#.#..P..#P#P#P#...#.#...#P..#P........#P#...#..P#.....#..P.P#.#.#P.P#...#....P#.#.#...#...#.#...#P..#...#P....#.#P#...#P...P#..P#.#..P#.#...#.......#...#...#...#
|
||||
#.#.#.###P#.###.#.#P#.#####.#.#.#####.#.###.#####P#.#P#####.#.#.#.#####.#####.#.###.#.#.#.#####.#####.#.#.#####.#.###.###.#######.#.###.###.#.#######.#.#.###.#######.#.#.###.#.#####.###########.###.###
|
||||
#P#.#...#..P#P....#.#P#.....#.#.#.#P..#P.P#..P.P#P#.#.#....P#.#.#.#...#...#......P#..P#P..#..P#.#....P#.#.#.....#..P#P....#P...P..#.....#P..#P#...#...#.#...#P#P......#.#P#.........#..P..P..P#...#P....#
|
||||
###.###.#####.#####.#.#.#.#####.#.#.#.###.#####.#.###.#.#####.#.#.#.#.###.#.###############.###.#.#####.#.#.#####.#.#########.#########.#.#####.#.#.###.###.#.#.#######.#.#.#########.#######.#.#####.#.#
|
||||
#...#...#...#...#...#.#.#....P..#...#...#..P#P..#.#...#...#...#.#.#.#.....#...#P..#...P...#.....#P#...#P..#...#P..#...#.......#P......#.#...PP..#.#..P#.#...#P#..P.P.P#P..#...#......P#P....#...#...#P#.#
|
||||
#.#.#.###.#.###.#.###.#.#########.#####.###.#####.#.#.###.#.#.###.#.#######.###.#.#.#####.#.#####.#.#.###.###.#####.#.#####.#####.#####.#########.###.#P#.###.#.#####.#######.#.#########.#.#####.#.###.#
|
||||
#.#.#P...P#.#P..#.#P..#.....#PPP...P..#.#..P#.....#.#..P#.#.#P#...#...P...#.#..P#....P#P..#...#P#.#.#...#.#...#..P#P#.#...#.....#...#...#P..#...#.#...#.#.....#.....#.#P..#P..#.#........P#..P.P..#...#.#
|
||||
#.#########.###.#.#.#.#####.#########.#.#.###.###.#.#####.#.###.###.#####.#.#.#########.#.###.#.#.#.###.###.###.#.###.#.#.###.#.###.#.###.#.#.#.#.#.###.###.###.#####.#.#.#.###P#.#####.#############.#.#
|
||||
#.........#...#...#P#.#..P#..P..#P#...#P#..P..#P..#..P....#.#P..#P....#P..#P#.#.....P...#P..#.#.#P#P#.#P#...#...#.....#.#...#P#...#...#...#P..#P#P..#.....#.#P..#P....#.#...#P#.#.#.....#..PP.PP..#...#.#
|
||||
#.#####.#.###.###.#.#.#.#######.#.#.###.#######.###########.#.#########.###.#.#.###########.#.#.#.#.#P#.#.###.#####.###.###.#.###.#####.#######.#####.###.#.#####.#####.#####.#.#P#.#####.#######.###.#.#
|
||||
#..P#..P#..P#P#...#.#.#.......#.#P#..P#.....#.#P........#P..#.........#..P#P#P#.......#.....#.#P#..P#.#...#P..#....P#...#...#.#.#..P#..P#.....#....P#.#.#.#.....#.#..P#.#...#.#.#P#.....#..P.P..#..P#...#
|
||||
#.###.#####.#.#####.#.###.###.#.#.###.#####.#.#########.#.#.#########.#.#.###.#######.###.###.#.#####.#####.#####.###.###.###.#P###.#.#####.#.#.#####.#.#.#####.#.#.###.#.#.#P#.#######.#######.###.###.#
|
||||
#.#..P#P....#P.P#P..#.....#P.P#.#.........#.#P...P#...#.#P#...#.....#P#.#...#.#....P#P..#.#...#.......#.....#P..#.#...#.#P#.#P#.#P..#..P#...#P#P#....P#.#.....#...#...#..P#.#P#P......#...PP..#.#P.P#P#.#
|
||||
#.#.#######.###.#.#######.#####.#.#######.#.#####.#.#.#.#####.#.#.###.#.###.#.#.###.###.#P#.#####.#.#.#.###.#.#.#.#.###.#.#.#.#.#.#####.#.###.#.#.#####.#####.#######.#####.#.#######.#######.#.#.###.#.#
|
||||
#P#P.....P#.#...#P#PPPP..P#P...P#P#..P#...#.....#...#.#....P#..P#...#.#...#...#.#.#.#...#P#.#...#.#.#...#...#.#.#.#.#P..#.#P...P#.#...#P..#.#.#P..#.....#...#..P#P.....P..#....P.P#P#P.PP..P#P..#P..#P#.#
|
||||
#P#######.###.###.#########.#######.#.###.#####.#####.#####.#######.#.###.#####.#.#.#.#####.#.#.#.#P###.#####.#.###.###.#.#######.#.#.#####.#.#########.#.#.###.###.#####.#######.#.#######.#######.#.#.#
|
||||
#.#P..#...#...#.....#..P.P..........#..P#.....#...#.......#P....P..P#...#...P...#...#P....#.#.#.#.#.#...#P....#...#P....#.......#...#.#..P.....P......#...#..P#...#.#PPP..#P.P.......P#.....#....P..#...#
|
||||
###.#.#.#.#.#####.#.#.#################.#########.#.#########.#########.#######.#########.#.#.#.###P#####.#######.#####.#######.#####.#.#############.#.###.#####.#.#######.###########.#####.#######.###
|
||||
#...#...#.#P#P.P#.#P#...#...PP..#P.P..#.....#...#P#...#.....#.#P........#..PP.P.#P........#P..#...#P#..P........#P.P..#...#P..#.....#...#..P#P.P..#P..#..P#...#P..#P#...#...#....P..#...#...#.#.....#..P#
|
||||
#.#######.#.#.#.#.#.#.###.#####.#####.#####.#.#.#.#.#.#.###.#.#.#########.#######.#######.#######.#P#.###############.###.#.#.#####.###.#.#.#.###.###.#######.#.###.#.#.#.###.#####.#.###.#.#P#.###.#####
|
||||
#...#.....#...#.#P#..P#...#P#...#...#..P..#...#..P#P#...#.#..P#P........#P#..P#...#.#........P.P#.#.#...#..P#.......#...#.#.#....P#...#...#.#...#...#........P#.#.....#.#..P#..P#...#.#...#P#.#..P#P.P..#
|
||||
#.#.###.#######.#P#####.###.#.###.#.#####.#########.#####.#########.###.#P###.#.###.#.###########.#P###.#.#.#.#####.#.#.#.###.#.#####.#####.###.###.###.#######.#.#####.#.#####.#.#.#.#.###.#.###.#####.#
|
||||
#P#...#...#..P#.#P#P.P#P#P#...#...#.#P.P#P#..P....#.#P......#..P.P#.#.#.#.#P..#.#P....#...#P..#...#.#...#.#...#...#...#.#.#...#P#P.P#.....#.#P..#P#..P#.#P.PPP..#P#P#...#.#..P#P#.#P#.#..P#.#......PP.#.#
|
||||
#.###.###.#.###.#.#.#.#.#.#.###.#.#.#.#.#.#.#####.#.#######.#.###.#.#.#.#.#.#.#.###.#####.#.#.#.###.#.###.#####.###.#####.#.#.###.#.#.###.#P#.###.###.#.#.#######.#.#.###.#.#.#.#.###.#.#.#P###########.#
|
||||
#.#.#...#P#...#.#...#.#.#.#.#P.P#.#...#.#P..#P....#.#..P#P..#P.P#P#...#.#..P#.#..P#.......#P#.#.#...#.#...#.....#...#.....#.#.#P.P#.#...#.#.#.#......P#.#.#P....#...#...#P#.#...#P....#.#.#.......#P....#
|
||||
#.#.###.#.###.#.###.###.#.#.#####.#####.#####.#.###.#.#.#.#.###.#.#####.#####.###.#######.#.#.#.#.###.#.#######.#.###.#####.###.###.#####.###P#.#######P#.###.#####.###.#P#.#############.#######.#.###.#
|
||||
#.....#.#...#.#P#...#...#.#...#...#...#.....#.#P#.....#...#..P#.#....P#....P#...#...#P..#P#.#..P#...#.#...#P..#....P#...#P..#...#...#P..#..P#P#...#..P#P#...#.........#.#.#.#P.......P#...#...#P#..P#..P#
|
||||
#.#####.###.#.#.#####.###.###.#.###.#.#####.#.###.#############.#####.###.#.#.#####.#.#.###.#####.#.#.###.#.#.#########.###.#.###.###.#.###.#.###.#.#.#####.#####.#####.#P#.#####.###.#.###.#.#.#####.###
|
||||
#.#.....#.....#.#..P..#.....#P#.#...#P#P....#..P#.#...P.....#...#P.P#..P#.#.#.#.....#.#.....#...#.#P#..P#P#.#.....#..P..#...#.#.#.#..P#P..#P#.#....P#.#...#..P..#.#.....#.#.#..P.P#.#P#...#P#.#.....#.#.#
|
||||
#.#.###########.#.#####.###.#.#.#.#.###.#######.#.#.#######.#.#####.###.###.#.#.#####.#######.###.#.###.#.#.#####.#.#####.#.#.#.#.#.#####.#.#.#######.#.#.#####.#P#.###.#P#.#.#####.#.#.#.#.#.###.#.#.#.#
|
||||
#.#...P.P......P#..P..#.#.#..P#P#.#P#...#P.....P#.#.......#.#.#P......#P#..P#.#....P#.......#.....#.....#.P.#.#...#...#...#.#.#..P#P..#.....#...PP..#P..#P#..P..#P#P#..P#.#...#P....#.#.#P#.#.....#.#...#
|
||||
#.###############.###.#.#.#####.#.###.#####.#####.#######.#.#.#.#.#####.#.#########.#.#####.###########.#####.#.#####.#.###.#.#.#####.#######.#####.#####.#.#######P#.###.#########.#.###.#.###.#######.#
|
||||
#..P.P#.....#..P..#.#P#...#.....#.....#P..#..........P..#.#...#.#.#.....#...#P....#...#..P#P..........#...#...#P........#...#P#.......#P..#....P..#.#P..#P#...#..P#.#P..#P.....P....#...#.#P#...#....P#.#
|
||||
#####.###.#.#.#####.#.###.#.#.###.#####.#.#############.#.#######.#.#####.#.#.###.#.###.#.###########.###.#.#.###########.###.#.#######.#.###.#####.#.#.#.###.#.#.#.###.###########.###.#.#.#.###.###.#P#
|
||||
#...#.#P..#.#.#.....#.#P#.#.#P..#.......#........P.P#P..#...#P....#PPP.P#P#P#.#.#.#P#...#.#PP...#P.P.P#.#.#.#...#....P#.#.#P..#P#P.....P#P..#.#.....#.#P#...#.#.#...#P..#P....P.....#P#.#.#P#...#P..#.#P#
|
||||
#.#.#.#.###.#.###.###.#.#P#P###.###################.#####.#.#.###.#####.###.#.#.#.###.###.#####.#.#####.#.#.###.#.###.#P#.#.#####.#########.#.#.#####.#.###.#.#.#####.###.###########.#.#.#.#######.#.#.#
|
||||
#.#P#P.P#P#P#....P#...#P#.#.#...#...#.#.....#P...P#.....#.#.#.#..P#P..#...#.#P..#..P#.#P#....P#.....#P......#...#.#.#P#.#.#..P#P..#P........#.#.#.PP..#...#P#.#...#P....#.#P...P#.....#P..#......P#P#..P#
|
||||
#.#######.#.#######.###.#.###.###.#.#.#.#.###.###.#####.#P#.#.#.#####.###.#.###.###.#.#.#####.#####.###.#######.#.#.#.#.#.###.#.###.#########.#P#####.#####.#.#.#.#####.#.###.#.#.###.#######.###.#.#####
|
||||
#....P..#.#.......#.#...#..P#..P..#.#...#.......#....P#.#P#.#P#P........#.#...#...#...#P...P#P.P..#...#...#P.P#P#P#...#....P#.#..P#.#...#.....#.#P..#P.......P#.#P....#P#.....#.#...#.......#...#.#.#...#
|
||||
#.#.###.#.#######.#P#.#.###.#.#####.#.#############.###.###.#.###########.#.#.###.#########.#####.###.#.###.#.###.#.#########.###.#.#.#.#.#####.#.#.###.#######.#####.#########P#.###.#####.#####.#.###.#
|
||||
#.#.#P#.#.....#...#.#.#..P#.#P.P#...#....P#P.P#...#...#....P#.#..PP...#P.P#P#...#.#P....#...#...#...#.#.#...#.#..P#.#..PP..P#.....#.#.#P..#P..#...#P.P#.#.#...#.#...#.....#...#.#.#..P#.#...#P...P#.....#
|
||||
#P#.#.#.#.###.#.###.###.###.#####.#######.#.#.#.#.#.#.#######.#.#####.#.###.###.#.###.#.#.#.#.#.###.#P#.#.###.#.###.#.#####.#######.#.#######.#######.#.#P#.#.###.#.###.###.#.#.###.###.#.###.#########.#
|
||||
#.#.#...#.#...#.#.#...#P#P..#P..#.....#...#P#..P#.#.#...#.......#P...P#..P#.#...#P..#.#...#..P#P.P#.#.#P#.#.#.#.#...#P....#..P#..P#.#...P...#.....#.#.#..P#.#P....#.P.#...#P#P...P..#P..#P#...#...#.....#
|
||||
#.#.###.#.#.###.#.#.#.#.#.###.#.#####.#.###.#####.###.###.#######.#.#####.#.#######.#.###.#########.#.###.#.#.#.###P#####.###.#.#.#.#######.#.###.#.#.#####.#########.###.#P#########.#.#.#.#.#.#.#.#####
|
||||
#P#...#...#...#.#...#.#...#...#.#..P..#...#...#...#...#P...P..#...#.#P....#......P#...#..P#..P#.....#..P#.#...#...#P#...#.#P#...#.#.#.....#...#P#P..#P...P#.#...#.....#P..#P#.#P...P#P#...#.#P#P#P..#..P#
|
||||
#####.#.#######.#.###.###.#.###.#.#######.###.#.###.#.#.#######.#####.#########.#####.#####.#.#.#######.#.#.#####.#.#.#.#.#.#####.#P#.###.#####.###.#####.#.###.#.#####.###.#.#.###.#.#####.###.#####.###
|
||||
#P....#P#...#..P#...#P.P#.#.#.#.#.#P..#P.P#P..#...#.#P#..P#....P#.....#.......#..P....#.....#.#...#P.....P#..PP...#..P#..P#....P#.#.#...#.#.#P....#..P#.#.#...#.#...#.........#..P#P#...P...#...#.#....P#
|
||||
#.###.###.#.#.#########.#.#P#.#.#.###.#.###.#####.#.#.#.###.#####.#####.#####.#####.###.#####.###.#########################.#.###.#.#.###.#.#.###.###.#.#.###.#.###.#############.#.#######.#.###.#.###.#
|
||||
#P#P.P#...#.#.#...PP...P#.#.#P....#...#.#P..#P......#.#.#...#..P..#..P#..P..#.#..P#P..#.#..P#..P#...P..P#.#.........#P......#.#...#.#.#..P#...#P..#P..#P#...#.#...#P..P.P....P....#...#PP...#.#P#...#...#
|
||||
#P#####.###.#.#.#########.#.#######.#.#.#.###########.#.#.###.#####.###.###.#.#.#.#####.###.###.#.#####.#.#.###.###.###.#.###.#.###.#.#.#####.#.###.###.#.#.#.###.###################.#######.#.#.###.###
|
||||
#.#.....#.#...#...#...#...#...#.....#P#P#.#.........#.#.#...#...#P..#....P#P#P#.#P...P#.#...#...#P...P#.#....P#...#..P#P#.#P#.#.#P.P#.#.....#.#...#.....#P#.#P..#.......#..P....PP.P#...#P..#P#P..#.#...#
|
||||
#.#.#####.#######.#.#.#.#####.#.#.#####.#.#.#######.###.###.###.###.#.#####.#P#P#####.#.#.###.#########.#########.###.###.#.#.#.#.###.#####.#P###.#.#####.#.###.#.#.###.#.###.#####.###.#.#.#.###.#.###.#
|
||||
#.#.#......P......#.#.#.......#.#.......#...#....P#...#.#.....#..P#...#P....#P#...#P#...#.#...#....P...P#P.....P.P#....P.P#P..#.#.....#P....#.#...#.#..P..#.#...#P#.#...#..P#P#...#.#...#.#.#..P#...#P..#
|
||||
#.#.#.#.###########.#.#########.#############.#.#####.#.#.#######.#.###.#####.#.#.#.#####.#.#####.#######.#########.###########.#.#####.#######.###.#.#####P#.#####.#.#######.#.#.#.#.###.#.###.#####.#.#
|
||||
#...#.#PPP#.......#.#.........#.#..P...P.PP...#.#P....#.#.....#...#..P#.#P#...#.#.#..P#P..#...#...#P#P.P#.....#PP...#....PP...#.#...#P.P#..P....#...#P.P.P#.#P#.....#P..#...#P#.#...#P#...#..P#P....#P#.#
|
||||
#.#######.#.#######.###.#######.#.#############.#.#####.#####.#.#######.#.#.#####.#.###.#.###.#.###.#.#.#.###.#######.#######.#.#####.###.#######.#######.###.###.#####.#.#.#.#.#####.#.#####.#####.#.#.#
|
||||
#.........#..P........#...........#..P.P.......P#..P.......P#P......P...#P........#....P#.......#....P#.....#......P.....PP.#.P.......#.....PP.P......P.#P........#PP....P#P.P#....P#P....P.#.........#..
|
||||
#########################################################################################################################################################################################################
|
101
2024/day18_the_ring/tests/challenge3
Normal file
101
2024/day18_the_ring/tests/challenge3
Normal file
|
@ -0,0 +1,101 @@
|
|||
###########################################################################################################################################################################################################################################################
|
||||
#...............#.......#...#.......#.........#...#...#...#...#.......#.......#...#.........#.....#.......#.........#...#.....#...........#.........#.......#...............#.....#...#.....#.#............P#.......P...#.............#.........#.......#.#
|
||||
#.###.#######.#.#####.#.#.#.#.###.#.#.#######.#.#.###.#.#.#.#.#.###.#.#.#.###.#.#.#######.#.#.###.#.#.###.#.#######.#.###.#.###.#.#######.#.#.#####.#.#####.#.#############.#.###.#.#.#.###.#.#.#########.#.#.#.#######.#.#.###.#######.###.#####.###.#.#.#
|
||||
#...#....P#...#.......#.#P#...#...#...#.....#.#.#...#.#.#...#.....#.#.#.#.#.#...#.........#...#.#.#.#.#.....#.....#.#.....#...#.#.#.......#.#.#.#.....#...#...#...........#.#.#.#.#.#...#...#.#.#...#.....#.#.#.#.....#.#.#..P#.#...#...#.#.......#...#...#
|
||||
###.#######.###########.#######.#######.#.#.#.#.###.#.#.###########.###.#.#.###################.#.###.###########.#.#######.#.#.#.#.#######.#.#.#.#######.###.#.#########.#.#.#.#.#.#####.###.#.###.#.#####.###.###.###.#.###.###.#.#.###.#########.#####.#
|
||||
#...#.......#.........#.......#.#.....#.#.#.#...#...#...........#...#...#.#.......#.....#...#...#...#...#.........#.......#.#...#.#.#....P..#.#.....#...#.....#P#.......#.#...#...#.#...#.....#...#.#...#.#...#...#....P#...#...#.#...#.....#.....#.#...#.#
|
||||
#.###.#######.#####.#########.#.#.###.#.#.#######.###############.###.###.###.#####.#.#.#.#.###.###.#.#.#.###.###.#######.#.#####.#.#########.#######.#.#######.#.#####.#.#####.###.#.#.#####.###.#.###.#.###.###.#########.###.#.#######.#.###.#.#.#.###.#
|
||||
#.#...#.....#P#...#.......#...#.#.#.#.#.#.....#...#...#.........#.....#...#P..#.....#.#...#.#...#...#.#.#.#.#.#...#...#...#...#...#.....#..P..#.......#....P#...#.....#...#.....#...#.#.#...#...#...#...#...#...#.....#...#...#...#.......#...#.#.#.#.....#
|
||||
#.###.#.#.###.#.#.#######.#.###.#.#.#.#.###.###.###.#.#.#######.#######.###.###.#####.#####.#.#.#.#####.#.#.#.#####.#.#.###.###.#######.#.###.#.###########.#.#######.#.#######.#.#.#P#.#.#.#######.#.###.#####P#.###.#.#.###.#####.#########.#P###.#.#####
|
||||
#.....#.#.....#.#.......#...#.....#.#.#..P#.#...#...#.#.#...#.....#.....#.#...#.#.....#P..#...#.#.#.....#...#...#...#.#...#.#...#...#...#.#...#...#.....#...#.#...#...#.#.....#.#.#...#...#.........#.#.#.....#.#.#.#...#..P#.......#.....#.#...#...#...#.#
|
||||
#######.#######.###.###.#####.#####.#.#####.#.###.###.#.#.#.#####.#.#####.#.#.#.#.#######.#####.#.#.#######.###.#.###.###.###.###.#.#.###.###.###.#.#.#.#.###.#.#.#.#####.###.#.#.###################.#.#.#.###.#.#.#####.#.###.#####.###.#.###.#.#####.#.#
|
||||
#.....#.#.....#...#.#...#...#.......#.....#...#...#.#.#...#.....#.#.#.......#...#.#P..P...#.....#...#.#.....#...#.#.#.#..P#...#...#.#...#...#P#...#.#.#.#.......#.#...#...#P#.#.#...#.#.......#.....#.#...#...#.#...#P..#.#...#.#.....#...#...#.#.#...#.#.#
|
||||
###.#.#.###.#.#.###.#.#####.#######.#####.#.#####.#.#.###.#####.#.#.#.#########.#.###.###.#.#########.#.#####.###.#.#.#.###.###.###.###.#.#.###.#####.###########.###.#.###.#.#.###.#.#.###.#.#.###.#.#.#####.#.###.#.#.#.#####.#.#####.###.#.#.#.#.#.#.#.#
|
||||
#..P#.#.#...#.#.#P..#.....#.....#.......#.#...#...#.#...#....P#.#.#.#.#.......#.#.#...#...#.#P........#.#...#...#.#.#.#.#P..#....P#...#.#.#...........#.......#.#...#.......#P#.#...#...#...#...#...#.#P....#...#.#...#.#.......#...#...#..P#.P.#.#.#.#.#.#
|
||||
#.#####.#.###.###.#######.###.###.#######.###.#.###.###.#####.#.#.#.#.#.#####.###.#.#####.#.#####.###.#.#.#.###.#.#.#.#.#.###########.#.#####.#######.#.#####.#.###.#########.#.#.#######.#######.###.#####.#####.#####.###########.#.###.#######.#.#.#.#.#
|
||||
#.#...#.#.#.#.#...#.....#.#...#.....#.....#.....#.#.....#.....#.#...#.#.#...#.....#.....#.#.#...#...#.#...#.#.#.#.#.#.#.#.........#...#.....#...#...#.#...#...#P..#.#.#.......#.#...#...#.#.....#.#...#...#...#.......#.........#...#...#.#.....#.#.#.#...#
|
||||
#.#.#.#.#.#.#.#.###.#####.#.###.#####.###########.#.#####.#####.#######.#.#############.#.#.#.#.###.#.#####.#.#.#.#.#.#.#.#######.#.#######.#.###.#.#####.#.###.#.#.#.#.#######P###.#.#.#.#.#.###.#.#####.###.#.#####.#####.#####.#####.#.###.###.#.#####.#
|
||||
#...#.#...#.#...#.........#.....#....P#.....#.......#.#.....#...#.......#.#...........#.#.#...#.....#.#...#.#.#...#.#P#.#.#..P....#.......#.#.#...#.......#.#...#.#...#...#.....#.#.#.#...#P#.....#.#.......#.#P....#..P#...#...#.#.....#.....#...#.....#.#
|
||||
#.###.#####.#####.#########.#####.#####.###.###.#####.#.#####.###.###.###.#.#####.###.#.#############.#.###.#.#####.#.#.###.#######.#####.#.###.###########.#.#.#####.###.#.#####.#.#.#####.#######.#.#.###.#.###.#.#.###.###.#.#.#.###########.#######.#.#
|
||||
#.#.....#.......#.#.....#...#...#...#...#.#...#...#...#...#...#.....#.#...#.#...#.#...#.......#.......#.#...#.......#...#...#.....#.#...#.#.#...#.......#...#P#.#...#.#.#.#.#.....#...#...#.....#...#.#...#.#...#.#.#.#...#.#.#...#.#...........#.......#.#
|
||||
#.#.#####.#####.#.#.###.#.###.#.###.#.###.###.###.#.#####.#.#########.#.#.#.#.#.#.#.#####.#####.#######.#.###.#.#########.###.#####.#.###.#.#.#########.#.#####.#.#.#.#.#.#.#####.#.###.#.#######.###.###.#.###.#.#.###.###.#.#####.#.#############.#.###.#
|
||||
#.#....P..#...#.#.#.#...#...#.#...#...#.....#...#.#.......#...#...P...#P#...#.#...#.......#...#.#.#.....#...#.#.#.........#...#...#.#...#...#.....#...#.#.....#..P#..P..#.#.....#.#.#...#...#.....#.#.#...#.#...#.#...#.#...#...#.#.#.#...#...#.....#.#...#
|
||||
#.#########.#.#.#.#.#######.#.###.#########.###.#.###########.#.#############.#############.#.#.#.#.###.###.###.#.#######.#.#.#.#.#.###.#####.###.#.#.#.#####.###.#######.#####.#.#.#.#####.#.#####.#.#.#####.###.###.#.###.###.#.#.#.#.###.#.#.#.###.#.###
|
||||
#...#...#...#...#.#.....#...#...#.............#.#.............#.#...........#...............#...#.#...#...#...#...#.......#.#.#.#...#.....#.#...#.#.#.#...#.#...#...#P#...#.....#...#.....#...#.....#.#.....#.#...#.#.#.#...#.#.#.#...#.....#...#...#.#...#
|
||||
###.#.#.#.#####.#.#.###.#.###########.#.#.#####.#.#############.#.#########.#.#######.###########.###.###.###.#####.#######.#.#.#####.###.#.###.#P#.#.#.#.#.###.###.#.#.###.#####.#######.#####.###.#.#####.#.###.#.#.#.#.#.#.#.#.#####.###########.#####.#
|
||||
#...#.#..P#.#...#.#...#...#.........#.#.#.#...#.#.#.........#...#.#.....#...#...#...#.#.......#...#...#P#...#...#...#.#...#.#...#...#...#.#.....#...#.#.#.....#.#.....#...#.#...#...#.#...#.....#.#.#...#...#...#...#.#...#...#.#.....#.#...#P......#.....#
|
||||
#.###.#####.#.###.#######.#.#.#####.###.###.#.#.#.#.#######.###.#.#.###.#.#####.#.#.#.#.#.###.#.#.#.###.#.#####.#.###.#.#.#.#####.#.#.#.#.#######.###.#.#######.#######.#.#.#.#.###.#.#.###.#####.#.###.#.#####.###.#.#####.###.#.###.#.#.###.#######.#####
|
||||
#P#...#...#...#.#.......#.#.#.....#.....#...#...#.#..P..#.#...#.#.#...#.#.#.....#.#.#.#.#.#...#P#.......#.#.....#..P#...#...#....P#...#.#.......#.#.#.#.......#.......#.#.#.#.#.#...#.#.#...#.....#.....#.....#...#P#.......#...#.#.#.#.#...#P........#...#
|
||||
#.#.###.#.#.###.#######.#.#######.#####.#.#######.#####.#.###.#.#.###.###.#.#####.#.#.###.#.#############.#.#####.#.#P#################.#######.#.#.#.#####.#.#######.###.#.#.#.#.###.#.#.#####.#.###########.###.###########.###.#.#.#.###.###########.#.#
|
||||
#.#...#.#.#.......#...#.#.........#.....#...#P..#.#.#.....#...#.#..P#.#...#.P...#.#.#.....#.........#...#.#...#.#.#.#.#P................#.....#.#.#.#.#...#.#.......#.....#.#.#...#...#.#...#...#...#...#.#.....#.....#.......#.....#.#...#..P#.........#.#
|
||||
#.###.#.#######.###.#.#.###########.#######.#.#.#.#.#.#####.###.###.#.#.#######.#.#.###.###########.#.#.#.###.#.#P#.#.###.###############.###.#.#.#.#.#.#.#.#.#####.#######.#.#####.###.###.#.#####.#.#.#.#.#########.#.###########.#.###.#.###.#####.#.###
|
||||
#...#.#.........#...#...#P....#...#...#...#.#.#.....#...#...#...#.....#.#...#...#.#...#.#...#.....#...#.....#.#...#.#...#...#.............#P..#.#...#.#.#.#P#.....#.#...#...#.....#...#.#.#.#...#...#.#...#.#...P.....#.....P...#...#...#.#.....#...#.#...#
|
||||
#####.#.#########.#######.###.#.#.###.###.#.###########.#.#####.#.#####.#.###.###.###.###.#.#.###.#########.#.#####.###.#.#.#.###.#########.###.###.#.#.#.#####.#.#.###.#.#######.###.#.#.#.###.#.###.###.#.#.#################.#.#####.#P###.###.#.###.#.#
|
||||
#...#.#.#.......#.#.....#...#.#.#...#.....#.............#.#...#.#.#P#...#.....#.#...#...#.#.#.#...#.........#.#...#...#.#.#P#.#...#...#.......#...#P#...#.#...#.#.#.....#.......#...#.#.#.#...#.#...#.#...#.#.#.................#.#.....#...#...#.#...#.#.#
|
||||
#.#.#.#.#.#####.#.#.###.#.#.#.#.#.#.#####.###############.#.#.#.#.#.#.###.#####.###.###.#.#.#.#.###.#########.#.#.###.#.###.#.#.###.#.#######.###.#######.#.#.###.#####.#######.###.#.#.#.###.#.###.#.#.###.#.#.###################.###.###.###.#.###.###.#
|
||||
#.#...#.#.#...#.#...#...#.#.#.#.#.#...#...#.....#.........#.#...#.#.#...#.....#...#.#.#...#.#.#.......#.......#.#...#.#...#.#.#.....#.....#...#...#.......#.#.....#...#.#.#.....#P#...#.#.....#.#.....#.#.#.#.#.#.........#P........#.#.#.#.#..P#.#P#.#...#
|
||||
#.#####.#.#.#.#.#####.###.#.###.#.#####.###.###.#.#########.#####.#.###.#####.###.#.#.#####.###########.#######.###.#.###.#.###.#########.#.###.###.#######.#######.#.#.#.#.#####.#.###.#.#####.#######.#.#.#.#.###.###.#.#######.###.#.#.#.#####.#.#.#.#.#
|
||||
#.#.....#...#.#.....#...#.#.#...#.#.....#...#.#.#.#.........#.....#...#.#...#...#.#.#...#.#...#...#...#.......#.#.#...#.#.#...#.#.....#...#.#.#.....#P..#...#P......#.#...#...#.....#...#.#...#.....#.#.#.#.#.#...#.#...#.......#...#.#.#.#.#.....#...#.#.#
|
||||
#.#.#####.#####.#######.###.#.###.#.#####.#.#.#.#.###.###.###.#####.#.#.#.#.###.#.#.#.#.#.###.#.#.#.#.#######.#.#.#####.#.###.#.#.#.###.###.#.#########.#.#.#####.#####.#####.#.#####.###.#.#.#.###.#.#.#.#.#.###.###.#########.#.#.#.#.#.#.#.#####.###.#.#
|
||||
#.#.#.....#.....#.....#.P.#...#.#.#.#...#.#.#...#...#...#.#...#...#.#.#...#...#...#...#...#.#...#.#.#...#...#...#.......#.....#...#.#...#P#.#...........#.#...#...#.....#...#.#...#...#.#...#.#...#.#.....#.#...#...#.....P.#...#.#.#.#...#.#.#...#...#.#.#
|
||||
#.###.#####.#####.###.###.#.###.#.#.#.###.#.#######.#####.#.###.#.###.#######.###########.#.#####.#.#.#.###.#####.#.#################.###.#.#.#######.###.###.#.###.#####.#.#.###.#.###P#####.###.#.#####.#.###.###.#.#####.#.#####.#.#.###.#.#.#.###.#.###
|
||||
#.#...#...#.........#...#.#P#...#...#.....#.#.....#.....#.#.....#...#.#.......#.......#...#...#.#.#.#.#.....#.....#.......#.........#...#...#.....#...#.....#.#.....#....P#.#.P.#.#.#.......#.#...#.....#.#...#.....#.#.....#.#.....#...#...#.#.#.....#...#
|
||||
#.#.###.#.#############.#.#.###.###########.#.###.#####.#.#########.#.#.###.###.#####.#.###.#.#.#.#.#.#####.#.#########.###.#.#####.###.#.#####.#.#####.#####.#####.#.#####.###.###.#.#.###.#.#########.#.###.#########.#####.#.#####.###.###.#.#########.#
|
||||
#.#...#.#.......#.......#.#.....#.#.......#.#.#.......#.#...........#.#...#.#...#...#....P..#...#.#.#.#...#.#.#...#...#.....#...#.#...#.#.#...#.#.......#.....#...#.#...#.....#...#.#.#...#P#.#.......#.#.#...#.#.....#.#...#.#.#...#.#...#P..#.#.......#.#
|
||||
#.###.#######.###.#####.#.#####.#.#.#.###.#.#.#######.#.#####.#######.###.#.#.###.#############.#.#.#.###.#.#.#.#.#.#.#########.#.###.#.#.#.#.#######.###.###.#.#.#####.#.###.###.#.#.###.###.#.#####.#.#.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#####.#.###.###.#.#
|
||||
#...#.......#.#...#.....#.#...#.#...#...#...#...#.....#.#...#.#.......#...#.#.#...#.........#.#.#...#...#.#.#...#...#.......#P..#...#.#.#.#.#.......#.#...#...#.#.....#.#...#.#...#.#...#.#.....#P......#.#.#.#...#.#...#.#.#.#...#...#...#...#...#.#.#P#.#
|
||||
#.#.#######.#.#.#########.#.#.#.#######.#######.#.#####.#.#.#.###.#.#.#.#####.#.###.#######.#.#.#######.#.#.###############.#.#####.#.#.#.#.#######.#.#.#######.#####.#.###.###.###.###.#.#.#######.#######.#.#####.#.###.#.#.###.#.#####.#.#####.#.#.#.#.#
|
||||
#.#.#.....#.#.#.......#...#.#...#.......#.......#.#.....#.#.#...#.#.#.#.....#.#.#...#.....#.#.#.#.....#.#...#...#.#.......#.#.....#.#.#.#...#.....#.#.#.#.....#...#.#...#.#.....#...#.#.#.#.#.#...#.#.......#.#.....#.#...#.#.#...#.#.#...#.#...#...#.#.#.#
|
||||
#.###.#.###.#.#######.#.###.#####.#####.#.#######.###.###.#.###.###P#######.#.#.#.###.###.#.#.#.#.#####.#.###.#.#.#.#.#####.#####.#.#.#.#.###.###.#.#.#.#.###.###.#.#####.#######.###.#.#.#.#.#.#.###.#######.#.#####.#.###.#.#.###.#.#.###.#.#.#####.#.#.#
|
||||
#.....#.....#...#...#...#.....#...#.....#.#.....#...#.....#...#...#.......#...#.#...#...#...#.....#...#.#.#...#.#.#.#.....#.#...#.#.#...#.#...#P..#.#.#.#...#...#.#.......#.......#.....#.#...#.#.#...#.....#...#.....#...#.#...#.....#...#...#.#P........#
|
||||
#.###########.#.#.#.#########.#.#.#.#####.#.###.###.#.#######.###.#######.#####.###.###.#####.#####.#.#.#.###.#.#.#.#####.#.###.#.#.#####.#.###.###.###.###.###.#.#.###.#.#######.#.#####.###.#.#.#.#######.#####.#######.#.#.###########.#.###.#########.#
|
||||
#.#.....#.....#.#.#.#.......#.#.#.#.#.....#..P#.#...#.#.......#...#.....#.........#.#.....#...#.....#...#.#...#...#.....#.......#.#.......#...#...#.....#...#.#...#.#...#...#.....#.P...#....P#.#...#.....#...#...#...#...#.#.#...#.......#..P#.....#...#.#
|
||||
#.###.###.#####.#.#.#.#.###.#.###.#.#.#####.###.#.#####.#########.#.###.#.#.#######.#####.#.###.#########.#.#####.#####.#########.###########.###.###.###.###.#######.#####.#.#########.#######.#####.###.#.###.###.###.###.#.#.#.#.#######.#######.#.#.###
|
||||
#...#...#.....#...#...#.#...#P....#.#.#P....#...#...#...#.......#...#.#...#.#...#...#...#P#.#...#.......#...#.......#...#P..#...#.#....P......#...#...#...#.........#.#.#...#.#.....#...#...#.#.......#.#.#..P..#...#...#.#.#.#.#...#...#...#.....#...#...#
|
||||
###.###.###.###########.#.#########.#.#######.#####.#.#######.#.#####.###.###.#.#.#.#.#.#.###.###.#####.#####.#######.#####.#.#.#.#.###########.###.###.###.#######.#.#.#.###.#.#####.###.#.#.#########.#.#####.###.#.###.#.#.#P#####.#.#.###.###.#######.#
|
||||
#.#...#.#...#...#.......#...#.....#.#.#....P#.....#.#.#.....#.#...#.......#...#...#.#.#.#.#...#.......#...#.....#...#.#.....#.#...#.....#..P#...#...#.#.#.....#..P..#.#...#...#....P#.....#.....#.......#.....#.....#.#...#.#P#.#.#...#...#.#.#...........#
|
||||
#.###.#.#.###.#.#.#########.#.###.#.#.#.###.#.#.###.#.#.###.#.###.###.#####.#######.#.#.#.#.#.#.#########.#.#####.#.#.#.###.#.#########.#.###.###.###.#.###.#.#####.#.#.###.#######.###########.###.#.#######.#####.#.#.#.#.#.#.#.#.#######P#.###########.#
|
||||
#.....#...#...#...#...#...#...#.#.#.#.#...#.#.#.#...#.....#.#.#.#...#.#...#...#.....#.#.#...#P#.#...#.....#...#...#...#...#.#.#.......#...#...#...#...#...#.#.....#.#.#.....#.........#.........#...#.#.....#.#.....#.#.#.#.#.#.#.....#...#.#...........#.#
|
||||
#.#######.#.#######.#.#.#.#####.#.###.###.#.#.#.#.#########.#.#.###.#.#.#.###.#.#####.#.#######.#.#.#.###.#####.#########.###.#.#.#######.#.#####.###.###.#.#####.#.#.#######.#.###.###.#########.#####.###.#.#.#####.###.#.#.#.#####.#.#.#.#########.#.###
|
||||
#.#.....#.#.#.#.....#...#.......#...#.#...#.#.#.#...........#.#.....#.#.#.....#...#...#.#.......#.#...#...#.....#........P#...#.#.........#.....#.......#.#.#...#.#...#...#.#.#...#.#...#...#.........#...#.#.#.#.....#...#.#.#...#..P#.#.......#...#.#...#
|
||||
#.#.###.###.#.#.#############.#.###.#.#.###.###.#############.#.#######.#.#########.###.#.#######.#####.###.#####.#####.###.#.#.###############.#######.#.###.#.#.#####.#.#.#.###.#.#.###.#.#.#######.###.#.#.#.#.#####.#.#.#####.#.###P###.#####.#.#####.#
|
||||
#...#P#.....#.....#.....#...#.#...#..P#.#.#.#...#.........#...#.#...#...#.#.........#.#...#...#...#......P#.....#.#.....#...#P#.#.........#...#.#...#...#.....#...#.....#.#.....#.#.#.#...#...#.........#.#...#.#...#...#.#...#...#.....#.#.#.....#.....#.#
|
||||
#####.#############.###.#.#.#.###.#####.#.#.#.#.#.###.###.#.###.#.#.#.###.#.#########.#####.#.#.###############.###.###.#.#####.#.#.#####.#.#.#.###.#.#############.#####.#####.#.###.#########.#######.#.#########P#.#.#####.#.#########.#.#.#########.#.#
|
||||
#.....#...........P.#.#.#.#.#...#.......#.#.#.#.#...#...#...#.#...#...#...#.....#.......#...#.#.#.......#.....#.....#...#.....#.#.#.#.#...#.#.#...#.#...#.#......P..#...#.....#.#...#.#.......#.#.....#.#.........#...#.#.....#...#...#P....#.........#...#
|
||||
#.#.###.###.#########.#.#.#.#.#####.###.#.#.#.#.#######.#####.###.#############.#######.#.###.#.#.#####.#.###.#.#############.#.###.#.#.#####.###.#.###.#.#.#####.###.#.#####.#####.#.#.#####.#.#.#.#.#.#########.#####.#.###.###.#.#.###.###########.###.#
|
||||
#P#.....#.#...#..P........#.#.#...#...#.#.#...#.........#.......#.#...........#...#...#P....#.#.#.#...#...#.#.#.#....P..#.....#.....#.#........P#.#.....#.#.....#.....#.#...#.....#.....#.P.#.#.#.#.#.#.#.....#.#...#...#...#...#.#.#...#.....#.....#...#.#
|
||||
#.#######.###.#############.###.#.#####.#.#.#################.#.#.#.#######.#.###.#.#.#######.#.#.#.#.###.#.#.#.#.#####.#.###########.#########.#.###.###.#####.#######.#.#.#####.#######.###.#.###.###.#.###.#.#.###.#####.#.###.#.###.#####.#.###.###.###
|
||||
#.#.......#.#...#.......#P#.#...#.......#...#.............#...#.#.#.#P..#...#..P#...#...#...#.#.#.#.#...#...#...#.#.....#.#...........#.........#...#.....#.....#.....#.#.#...#...#...#...#...#...#.....#...#...#.....#.....#.#...#...#.#.....#.#.#...#...#
|
||||
#.###.###.#.###.#.#####.#.#.#.#.#######.#####.###########.#.###.#.#.###.#.#####.#######.#.#.#.#.#.#.###.#########.#####.#.#.#########.#.###########.#######.#####.###.#.#.###.#.###.#.###.#.#####.#.#####.#.#.#########.#.#####.#####.#.#.#####.#.###.###.#
|
||||
#.....#P#.#...#.#...#...#.#.#.#.#....P#.#.....#...........#.#.#.#.#...#.#.....#.....#.#...#.#.#...#...#.....#...#.#...#...#.........#.#.......#...#.....#...#...#.#P....#.#P#.#.#...#...#.........#.#...#.#.#.#.........#.#...#.#.....#.#.#P..#.#...#.....#
|
||||
#######.#.#.#.#.#.###.###.#.#.#.#.###.###.#####.###########.#.#.#.###.#.#####.#####.#.#####.#.#######.#####.#.#.#.#.#.###########.###.#######.#.#.#####.#.###.#.#.#######.#.#.#.#.#.###.###########.#.#.###.###.###########.#.#.#.#####.#.#.#.#.#.#######.#
|
||||
#.......#.#.#.#...#..P#...#...#.#P#.#...#...#...#.....#...#.#...#...#...#...#...#...#...#...#.#...P.#.#.......#.#...#.........#...#...#.......#.#.....#.#...#.#.#...#.....#...#P#P#...#.....#........P#.....#...#.....#.....#...#...#...#...#.#.#.........#
|
||||
#.###.###.#.#######.###.#.###.###.#.###.###.#.###.###.#.#.#.#######.###.#.#.###.#.###.#.#.###.#.###.#.#########.#.#########.#.#.###.#.#.#######.#####.#.###.#.#####.###.#######.#####.#####.###############.#.#.#.###.#.#########.#.###.#######.#.#########
|
||||
#...#.#...#..P....#.#...#.....#...#...#.....#...#...#...#P..#.....#.#.#.#.#...#.#..P#P#.#.#...#.#...#.#.......#.#.........#.#.#.#.#.#.#.....#...#...#...#.#...#.....#...#...P.#...#...#...#.#.....#.........#.#.#...#...#.....#...#...#.........#.#.....#.#
|
||||
###.#.#.#########.#.###########.###.#.#########.#.#.#########.#.###.#.#.#####.#.###.###.#.###.#.#.#.#.#.#####.#.###.#######.#.#.#.#.###.#####.###.#####.#.###.#.#####.###.###.###.#.###.#.#.#.###.#####.#####.#####.#####.###.#####.#.###########.#.###.#.#
|
||||
#.#.#...#.........#.....#.......#...#...#P..#...#.#...........#..P#.#.#.#.....#.#...#...#...#...#.#.#...#...#.#.#...#.......#.#.#.#.....#...#.#...#.....#...#.#...#.....#...#.....#.....#.#.#...#.....#.#...#.....#.#.....#...#...#.#.#...#.......#...#...#
|
||||
#.#.#######.#####.#####.#.#######.#######.#.#.###.###############.#.#.#.#.###.#.###.#.#####.#####.#.#####.###.#.#####.#########.#.#######.#.#.#.#.#.#######.#.###.###.#.###.#######.#####.#.#.#.#####.#.###.#####.#.#.#####.###.#.###.#.#.#.#######.#.#####
|
||||
#...#.......#...#.....#.#.#.....#.#..P....#.#.#...#.........#.....#.#.#...#.#.#P..#.#.....#.#.....#.....P.#...#.....#.........#.......#...#..P#.#.....#...#.#...#...#.#...#.#.....#.....#.#.#.#.#...#.#.#.....#...#..P#...#.....#.....#.#.#...#.#...#.....#
|
||||
#.###.#####.#.#.#######.#.###.#.#.#.#######.#.#.###########.#.#####.#.#####.#.###.#P#####.#.#.###########.#.#######.#.#######.#####.###.#############.#.#.#.###.###.#.#.#.#.#.###.###.###.#.###.#.###.#.#.###.#.#########.#############.#.###.#.#.#######.#
|
||||
#.....#...#.#.#...#...#.#.....#...#.#.....#...#.#...........#.....#.#.#.......#...#..P....#.#...#.......P.#.#....P#.#.......#...#...#...#.....#.....#...#.#...#...#.#.#.#.#.#...#...#.#...#.#...#.....#...#...#.............#...........#...#.#...#.....#.#
|
||||
#######.#.#.#.###.#.#.#.#########.#.###.#.#####.#.#########.#####.#.#.#.#######.#########.#.#.#.#######.###.#.###.#.#########.#.#.###.###.###.#.###.#####.#.###.###.#.#.###.#.#.###.###.###.#.###.#########.#######.#######.#.#.#########.###.#.###.#.###.#
|
||||
#....P#.#.#.#.#.....#.#P..........#...#.#.#...#...#.....#...#...#.#...#...#.....#.....#...#.#.#.......#...#.#.#.#.#.......#...#.#...#.....#...#.#.#...#.#...#...#...#.#.....#.#.#.#...#...#...#.#.#...#...#...#.....#.......#.#.....#...#.#...#...#.#.#...#
|
||||
#.###.#.#.#.#.#######.#############.#.###.#.#.#####.###.#.#####.#.###.###.#.#####.###.#####.#.#####.#.###.#.#.#.#.#######.#.###.###.#######.###.#.###.#.###.#.###.###.#########.#.###.###.#####.#.#.#.#.#####.#.#####.#######.#####.#.#.###.#####.###.#.###
|
||||
#.#.....#.#.#...#...#.....#.......#.#.#...#.#.......#...#.......#.......#.#...#...#.#P......#.#...#.#.#.#.#.#...#.....#...#...#...#.#.....#.....#...#.#..P#.#...#.#.#...........#..P#.#...#.....#.#P#.#.......#.#...#.#...#...#...#...#...#.#.........#...#
|
||||
#.#######.#####.#.#######.#.#####.###.#.###.###.###############.#######.#.###.#.###.#########.#.#.###.#.#.#.###.#.#.###.#####.###.#.#.###########.#.#.###.#.###.#.#.#############.#.#.#.#######.#.#.#.#######.#.#.#.#.###.#.###.#.#######.#.###.#########.#
|
||||
#.......#.....#.#..P.....P..#.......#.#...#.#.#.#.................#...#.#.#.#...#...........#.#.#...#.#...#...#.#.#.#...#.....#...#.#...#.........#.#.P.#.....#.#.#.....#...P...#.#.#...#...#...#...#.......#.#.#.#.#...#.#...#.#.......#.#...#.#.#.....#.#
|
||||
#.#####.#####.#.###################.#.#.#.#.#.#.#.#################.#.#.#.#.#######.#######.###.###.#.#.#####.#.#.###.###.#####.###.#.#.#.#.###########.#######.#.#####.#.#####.#.#.#####.#.#.#############P###.#.#####.#.###.#.#######.#.###.#.#.#.###.#.#
|
||||
#...#P#...#.#...#.....#.........#...#.#.#.....#...#P#P......#...P...#.#.#...#.......#.#...#.#...#...#.#.#...#.#P#.....#....P..#.#...#.#...#.#.....#...#.........#.....#.#...#.#...#...#...#.P.#...........#.....#.....#.....#.#.....#.......#.#...#.#.....#
|
||||
###.#.###.#.#.###.###.#.#######.#.###.#########.###.#.#####.#.#######.#####.#.#######.#.#.#.#.###.###.#.#.###.#.#############.#.#.#######.#.#.###.#.#.###############.#.###.#.#######.#.#.###.#.#####.###############.#####.#.#####.#########.###.#.#####.#
|
||||
#.#.#...#.#...#...#.#.#.....#P#.#.....#.......#.....#.#.#...#.#.....#...#...#.....#.P...#.#.#.#...#...#.#P..#.#...#.#.........#.#...#...#.#.....#...#.....#.......#...#.............#..P#...#.#.#...#.............#.....#...#...#.#...........#P#.#...#...#
|
||||
#.#.#.#.#.#####.###.#.#####.#.#.#.#####.#####.#######.#.#.###.#.###.###.#.#######.#.#####.#.#.#.#####.#.###.#.###.#.#.#.#######.###.#.#.#####.#######.###.#.#####.#.#############.#########.###.#.#.###.#######.#.#.#.###.#####.#.#############.#.###.#####
|
||||
#.#...#.#.......#...#...#.#...#.#.#.....#...#.......#...#.#...#...#...#.#.........#.#...#...#.#...#...#.....#.#P..#...#...#.......#...#.#...#.#.....#P#...#...#.#...#.....#...#...#...#...#.....#.#...#...#.#...#...#.#.....#...#P......#.......#P..#.....#
|
||||
#.#####.#########.###.#.#.###.#.###.#####.#.#######.###.#.#.#########.#.###########.#.#.#####.###.#.#######.#.#.#########.#.###########.#.#.###.###.###.#.###.#.#.###.###.#.#.###.#.#.#.#.###.###.###.###.#.#.###.#####.#####.#####.###.#.###.#####.#####.#
|
||||
#.....#.....#.......#.#.....#.#...#.#.#...#.....#.....#.#...#.......#.#....P..#.....#.#.....#...#.#...#.....#.#...........#.#.........#.#.#.....#.#...#.#.#...#.#.#...#.#..P#...#.#.#...#...#.#...#P..#.#...#.#...#...#.#.....#...#...#..P..#.......#...#.#
|
||||
###.#.#####.###.###.#.#######.###.#.#.#.#.#####.#.#####.#####.#####.#.#######.#.#######.###.###.#.#.#.#####.#.#############.#.#######.#.#.#######.###.#.#.#.###.#.#.###.#######.###.#######.#.#.###.###.###.#.#####.#.#.#.#####.#.#.#######.#####.###.#.#.#
|
||||
#...#.....#...#...#.#.........#.#...#.#.#.#.....#.....#.......#.#...#.....#.#.#.........#.#.....#.#.#...P.#.#...#...#.......#.#.....#...#.#.........#...#.#.#.#...#.#.....#...#P....#.#.....#.#.#.#.#P......#...#...#...#...#...#.#.#.....#.#...#.....#.#.#
|
||||
#.#####.#####.###.#.###########.#####.#.#.#.#########.#########.#.#####.#.#.#.###########.#######.#.#####.#####.#.#.#########.#.#.#######.#.#.###########.#.#.#.###.#.#.#.###.#######.#.###.###.#.#.#####.#####.#.#########.#.#.#.###.###.###.#.#####.###.#
|
||||
#P#.....#...#...#.#...#...#.....#...#...#.#...#.....#.......#...#...#...#...#...#.......#...#.....#.....#.....#.#.#...........#.#.........#.#...#.......#.#.#...#...#P#.#.....#.......#.#...#..P#.#.#...#....P#...#.......#.#.#.#...#...#.....#...#...#...#
|
||||
#.#######.#.###.###.#.#.#.#.###.#.#.#####.###.#.###.#.#######.#.###.#.#####.#.###.#####.#.#.#.###############.#.#.#####################.###.###.#.#.#####.#.#####.#####.#####.#######.#.#####.###.#.#.#.###########.###.###.###P###.###.#########.#####.#.#
|
||||
#.........#.........#...#...#.....#.......#.....#P..#.........#.......#..P..#.........#...#....P..............#.........................#.....#...#.......#.............#.............#...........#...#...............#.........#.......#...............#.#
|
||||
###########################################################################################################################################################################################################################################################
|
5
2024/day18_the_ring/tests/sample1
Normal file
5
2024/day18_the_ring/tests/sample1
Normal file
|
@ -0,0 +1,5 @@
|
|||
##########
|
||||
..#......#
|
||||
#.P.####P#
|
||||
#.#...P#.#
|
||||
##########
|
9
2024/day18_the_ring/tests/sample2
Normal file
9
2024/day18_the_ring/tests/sample2
Normal file
|
@ -0,0 +1,9 @@
|
|||
#######################
|
||||
...P..P...#P....#.....#
|
||||
#.#######.#.#.#.#####.#
|
||||
#.....#...#P#.#..P....#
|
||||
#.#####.#####.#########
|
||||
#...P....P.P.P.....P#.#
|
||||
#.#######.#####.#.#.#.#
|
||||
#...#.....#P...P#.#....
|
||||
#######################
|
5
2024/day18_the_ring/tests/sample3
Normal file
5
2024/day18_the_ring/tests/sample3
Normal file
|
@ -0,0 +1,5 @@
|
|||
##########
|
||||
#.#......#
|
||||
#.P.####P#
|
||||
#.#...P#.#
|
||||
##########
|
Loading…
Add table
Add a link
Reference in a new issue