Added Solution for 2020 day 24
This commit is contained in:
parent
dd5044e7ae
commit
b5fae028ad
5 changed files with 695 additions and 0 deletions
8
2020/day24_lobby_layout/Cargo.toml
Normal file
8
2020/day24_lobby_layout/Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[package]
|
||||||
|
name = "day24_lobby_layout"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
47
2020/day24_lobby_layout/challenge.txt
Normal file
47
2020/day24_lobby_layout/challenge.txt
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
Your raft makes it to the tropical island; it turns out that the small crab was an excellent navigator. You make your way to the resort.
|
||||||
|
|
||||||
|
As you enter the lobby, you discover a small problem: the floor is being renovated. You can't even reach the check-in desk until they've finished installing the *new tile floor*.
|
||||||
|
|
||||||
|
The tiles are all *hexagonal*; they need to be arranged in a [hex grid](https://en.wikipedia.org/wiki/Hexagonal_tiling) with a very specific color pattern. Not in the mood to wait, you offer to help figure out the pattern.
|
||||||
|
|
||||||
|
The tiles are all *white* on one side and *black* on the other. They start with the white side facing up. The lobby is large enough to fit whatever pattern might need to appear there.
|
||||||
|
|
||||||
|
A member of the renovation crew gives you a *list of the tiles that need to be flipped over* (your puzzle input). Each line in the list identifies a single tile that needs to be flipped by giving a series of steps starting from a *reference tile* in the very center of the room. (Every line starts from the same reference tile.)
|
||||||
|
|
||||||
|
Because the tiles are hexagonal, every tile has *six neighbors*: east, southeast, southwest, west, northwest, and northeast. These directions are given in your list, respectively, as `e`, `se`, `sw`, `w`, `nw`, and `ne`. A tile is identified by a series of these directions with *no delimiters*; for example, `esenee` identifies the tile you land on if you start at the reference tile and then move one tile east, one tile southeast, one tile northeast, and one tile east.
|
||||||
|
|
||||||
|
Each time a tile is identified, it flips from white to black or from black to white. Tiles might be flipped more than once. For example, a line like `esew` flips a tile immediately adjacent to the reference tile, and a line like `nwwswee` flips the reference tile itself.
|
||||||
|
|
||||||
|
Here is a larger example:
|
||||||
|
|
||||||
|
```
|
||||||
|
sesenwnenenewseeswwswswwnenewsewsw
|
||||||
|
neeenesenwnwwswnenewnwwsewnenwseswesw
|
||||||
|
seswneswswsenwwnwse
|
||||||
|
nwnwneseeswswnenewneswwnewseswneseene
|
||||||
|
swweswneswnenwsewnwneneseenw
|
||||||
|
eesenwseswswnenwswnwnwsewwnwsene
|
||||||
|
sewnenenenesenwsewnenwwwse
|
||||||
|
wenwwweseeeweswwwnwwe
|
||||||
|
wsweesenenewnwwnwsenewsenwwsesesenwne
|
||||||
|
neeswseenwwswnwswswnw
|
||||||
|
nenwswwsewswnenenewsenwsenwnesesenew
|
||||||
|
enewnwewneswsewnwswenweswnenwsenwsw
|
||||||
|
sweneswneswneneenwnewenewwneswswnese
|
||||||
|
swwesenesewenwneswnwwneseswwne
|
||||||
|
enesenwswwswneneswsenwnewswseenwsese
|
||||||
|
wnwnesenesenenwwnenwsewesewsesesew
|
||||||
|
nenewswnwewswnenesenwnesewesw
|
||||||
|
eneswnwswnwsenenwnwnwwseeswneewsenese
|
||||||
|
neswnwewnwnwseenwseesewsenwsweewe
|
||||||
|
wseweeenwnesenwwwswnew
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
In the above example, 10 tiles are flipped once (to black), and 5 more are flipped twice (to black, then back to white). After all of these instructions have been followed, a total of *`10`* tiles are *black*.
|
||||||
|
|
||||||
|
Go through the renovation crew's list and determine which tiles they need to flip. After all of the instructions have been followed, *how many tiles are left with the black side up?*
|
||||||
|
|
||||||
|
To begin, [get your puzzle input](24/input).
|
||||||
|
|
||||||
|
Answer:
|
139
2020/day24_lobby_layout/src/lib.rs
Normal file
139
2020/day24_lobby_layout/src/lib.rs
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
use core::fmt::Display;
|
||||||
|
use std::collections::HashSet;
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Eq)]
|
||||||
|
pub enum ParseError {
|
||||||
|
LineMalformed(String),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Display for ParseError {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
match self {
|
||||||
|
Self::LineMalformed(v) => write!(f, "Line is malformed: {v}"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Hash, PartialEq, Eq, Clone, Copy)]
|
||||||
|
struct Position {
|
||||||
|
north: isize,
|
||||||
|
east: isize,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TryFrom<&str> for Position {
|
||||||
|
type Error = ParseError;
|
||||||
|
|
||||||
|
fn try_from(value: &str) -> Result<Self, Self::Error> {
|
||||||
|
let mut north = 0;
|
||||||
|
let mut east = 0;
|
||||||
|
|
||||||
|
let line = value.as_bytes();
|
||||||
|
let mut idx = 0;
|
||||||
|
while idx < line.len() {
|
||||||
|
match line[idx] {
|
||||||
|
b'e' => east += 2,
|
||||||
|
b'w' => east -= 2,
|
||||||
|
b'n' => {
|
||||||
|
north += 1;
|
||||||
|
idx += 1;
|
||||||
|
match line[idx] {
|
||||||
|
b'e' => east += 1,
|
||||||
|
b'w' => east -= 1,
|
||||||
|
_ => return Err(Self::Error::LineMalformed(value.to_string())),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
b's' => {
|
||||||
|
north -= 1;
|
||||||
|
idx += 1;
|
||||||
|
match line[idx] {
|
||||||
|
b'e' => east += 1,
|
||||||
|
b'w' => east -= 1,
|
||||||
|
_ => return Err(Self::Error::LineMalformed(value.to_string())),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
_ => return Err(Self::Error::LineMalformed(value.to_string())),
|
||||||
|
}
|
||||||
|
idx += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(Self { north, east, })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Position {
|
||||||
|
fn get_neighbours(&self) -> [Self; 6] {
|
||||||
|
[
|
||||||
|
Self {north: self.north, east: self.east+2}, // E
|
||||||
|
Self {north: self.north, east: self.east-2}, // W
|
||||||
|
Self {north: self.north+1, east: self.east+1}, // NE
|
||||||
|
Self {north: self.north+1, east: self.east-1}, // NW
|
||||||
|
Self {north: self.north-1, east: self.east+1}, // SE
|
||||||
|
Self {north: self.north-1, east: self.east-1}, // SW
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run(input: &str) -> Result<(usize, usize), ParseError> {
|
||||||
|
let mut flipped = set_pattern(input)?;
|
||||||
|
let first = flipped.len();
|
||||||
|
|
||||||
|
for _ in 0..100 {
|
||||||
|
apply_rules(&mut flipped);
|
||||||
|
}
|
||||||
|
|
||||||
|
let second = flipped.len();
|
||||||
|
Ok((first, second))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_pattern(input: &str) -> Result<HashSet<Position>, ParseError> {
|
||||||
|
let mut flipped = HashSet::new();
|
||||||
|
for line in input.lines() {
|
||||||
|
let pos = Position::try_from(line)?;
|
||||||
|
if flipped.contains(&pos) {
|
||||||
|
flipped.remove(&pos);
|
||||||
|
} else {
|
||||||
|
flipped.insert(pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ok(flipped)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn apply_rules(flipped: &mut HashSet<Position>) {
|
||||||
|
let mut new = HashSet::new();
|
||||||
|
|
||||||
|
flipped.iter().for_each(|tile| {
|
||||||
|
let neighbours = tile.get_neighbours();
|
||||||
|
if (1..=2).contains(&neighbours.iter().filter(|n| flipped.contains(&n)).count()) {
|
||||||
|
new.insert(*tile);
|
||||||
|
}
|
||||||
|
neighbours.iter().for_each(|neighbour| {
|
||||||
|
if neighbour.get_neighbours().iter().filter(|nn| flipped.contains(&nn)).count() == 2 {
|
||||||
|
new.insert(*neighbour);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
std::mem::swap(&mut new, flipped);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[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 sample_input = read_file("tests/sample_input");
|
||||||
|
assert_eq!(run(&sample_input), Ok((10, 2208)));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_challenge() {
|
||||||
|
let challenge_input = read_file("tests/challenge_input");
|
||||||
|
assert_eq!(run(&challenge_input), Ok((427, 3837)));
|
||||||
|
}
|
||||||
|
}
|
481
2020/day24_lobby_layout/tests/challenge_input
Normal file
481
2020/day24_lobby_layout/tests/challenge_input
Normal file
|
@ -0,0 +1,481 @@
|
||||||
|
seweswweswnwseeeesenwneseeseee
|
||||||
|
wwswwwnewnenwsweneswwwwwseww
|
||||||
|
eneneeesweeneneeeswnene
|
||||||
|
nenwswwsenenwnwnenenenenwnesenwnenenenenene
|
||||||
|
eneeenwneseneeseseseswsewswseswsenwe
|
||||||
|
eeneneenenwneseneesweneene
|
||||||
|
wwwwnenenwwwwwswsww
|
||||||
|
wnwnwenwnwnwnwnenwwwnwnwnwseswnwnenw
|
||||||
|
sewsweswnwnweswswnwswe
|
||||||
|
swenwnwnenwnwnweneeswsenwswneswneswsew
|
||||||
|
seswsweseswneswswneswnwsenwswsenwswsesenw
|
||||||
|
swsenesewswnenwnewseswseenwnweseseseew
|
||||||
|
senwseswseswnwswswswseseeseseseswswesw
|
||||||
|
eeeeneeenweneeeeneesweenewwne
|
||||||
|
sewnwnwnwnwnwnwnwswnwwnenwnwnwnwnwnwnwe
|
||||||
|
swenenwneenwwnwwenwwnwwenwseswswnwe
|
||||||
|
seswseseeseswnwswswse
|
||||||
|
nenenenwswnenenenenene
|
||||||
|
wnwseswwwnwwswwswswseswnewwswseww
|
||||||
|
seeswwnenewwnwswsenewwswwwswswsww
|
||||||
|
wnesewnwwnwnenwwewsewnwneeseseswwnw
|
||||||
|
nesewsesesesesesewsweseseseseewnwsw
|
||||||
|
swswswsewseeswswswswswneswswwsewsesenesw
|
||||||
|
nesewswwwswswwwwswswwsewnwswnesew
|
||||||
|
seseesweswnweeswseenwnenweenwwe
|
||||||
|
swswnweswnwswswswseswseswswswsesesww
|
||||||
|
nwenenwsenenwnwnenenwneneneneneneneswnesw
|
||||||
|
eenwewnwsesweesesenwnewnwnwsenesw
|
||||||
|
wswswswneseseseswse
|
||||||
|
nwnwnwnwnwenwnwnwwnwsenwnwnenwnwnenew
|
||||||
|
swsesesewseeseseseseneeseenwesesesese
|
||||||
|
neseneswsenewsesenwwwswswsenweswnee
|
||||||
|
swswnwwswsweswswswwswswwwneswwswsw
|
||||||
|
swswswnewwswswnesweswwswwswnwwwww
|
||||||
|
neeesewnwnenweswswnwswsenenenwsenwsene
|
||||||
|
nwnwswnwswenwwwnwwenweenwwnwnww
|
||||||
|
neswswnwswsenwwswswsweswseswsw
|
||||||
|
neweeneneseeweeeseeeneswnweene
|
||||||
|
swenwneswsewswneswwnwswnwswswswswswwe
|
||||||
|
nenwswneswnenwsenwnenwsew
|
||||||
|
nwnwnwnenwnwswwnwnwnwneswsenenwnenenwnwnw
|
||||||
|
wseswsewnewseswswnweseseneswswnenenwse
|
||||||
|
neeeeeswneneneneneneeneeswnwnwneee
|
||||||
|
eneswneenwnenwsewswseeeenwseseew
|
||||||
|
swswswsewseeswenwseenwseswswswseswnwswse
|
||||||
|
seseeseewseseeseswsesenenwseseseeenee
|
||||||
|
neswswswswswswnwwswswwswswsewswnesww
|
||||||
|
wsenenwneneneswnwnwnenenenwnenwnenenwnw
|
||||||
|
wnwsenesenwwswsewsweenwwwwwswsw
|
||||||
|
swnwneseswseswnwswsewseswswseswswsweeswsw
|
||||||
|
seswswswnwneswswwnwswseswnwseswswswenesw
|
||||||
|
nwnwnwnwnwsenwnwnwwenwnw
|
||||||
|
nweeeeeeeeeeeswseenewsewne
|
||||||
|
neneneneseneeesenewwnwenewneneswne
|
||||||
|
nwwnwnwnwnwnwnwwwwsenwewnw
|
||||||
|
nwswnenenwneneseneneseenwnwnwnenwne
|
||||||
|
seneneneneeeenwsenenwsweeneeenenene
|
||||||
|
wnwwnwwnwswwswwnwnwnenwwwnwnwne
|
||||||
|
swwenewswwweewswswwswnwswswnwsw
|
||||||
|
newneswsenenwsenenwswesenwnwnwnenwnenese
|
||||||
|
neneswneweneneneeneneeeeeneesenw
|
||||||
|
seweseswsewsenwesenenwsese
|
||||||
|
newewseneesweswseneswnenewwsenwe
|
||||||
|
nesenwsewnwnwseswnwswsenenwewwnwsene
|
||||||
|
nwnewwsenewwnesewwse
|
||||||
|
swswesweneneneswenwswnenenesenewnee
|
||||||
|
swnwseenwnewneneseewne
|
||||||
|
nwwwnwnwenwnwwnwnwnwnw
|
||||||
|
eseseneswneseswsesenwwwsewnesesesee
|
||||||
|
nenwnwnwnwnwnwnwnwnwnenenwnwnesewsenesw
|
||||||
|
nenenenenenwneneswswnenenwwnwneneneenw
|
||||||
|
seswseswneewneswwseseswseseswswseswswse
|
||||||
|
wsewneseeseseseseneswsesesenesese
|
||||||
|
sweswswwswswswswswswswwneesweeww
|
||||||
|
neswswnwswswswswwswswsweseeswswswewsw
|
||||||
|
nwneenesenwswenenesenwswnenenewsenene
|
||||||
|
eweeeeeneeseesenwesweeeeee
|
||||||
|
wseeenwnweeswnesweeneeenenwseee
|
||||||
|
esenwseseesenwwseeeeeeeseesee
|
||||||
|
wwwnewwwswwsewwwewnewwwnwwse
|
||||||
|
swswseswseswsenwswswnwseswseswesenwese
|
||||||
|
senwseseseseenwseeseseseseeseswsesese
|
||||||
|
wewnewwswnwwnewnwswswseewwsww
|
||||||
|
wswswswswswwswswnwweeswwwwwww
|
||||||
|
eeenweewenesweeeeeseee
|
||||||
|
swwswesewswsenewwneswwwswwneeww
|
||||||
|
nwnwnenenwseneseenenwnenwnenwnenwswnenw
|
||||||
|
swwswsweeswwswwswwswneswwwnesesesw
|
||||||
|
nwneswneneneneneenwneneswnenenenenwnenw
|
||||||
|
nwwwswsewesenwwsweneswnenwseswwsw
|
||||||
|
sesesesewseneseseseseseesewsewsesesene
|
||||||
|
nenwneeswswswsewswnwnwwswneswsenew
|
||||||
|
senenwnwswnwswesewswnwnwnwnweenwneneswse
|
||||||
|
esewweeeeesenwneeseesweeeene
|
||||||
|
newwseseeseeseseseseseenwewsesese
|
||||||
|
seneseeeswweeesewneseseewseene
|
||||||
|
swseeseseeseswsewnweneswnwenesewnwse
|
||||||
|
eweneeewesenwneeneenewenesesw
|
||||||
|
wswnwneseswswnenenenwenenenewneneenw
|
||||||
|
seeneswsesewseseswnesenwseswswnwsesese
|
||||||
|
seewesewewsenewneneneswsenwesese
|
||||||
|
senwnwnwsewnwnwnwswnewnwnwenwnenenwswnwnw
|
||||||
|
swnwnwnenwwwsenwnenwnwnwnwenwwesewnwnw
|
||||||
|
seswswneswswswswswswwswneseswswwswswswsw
|
||||||
|
neseneswnenwwnenenwnwwnesenwnenwnenene
|
||||||
|
nwseseswswwswsewseswenwnwweeswesese
|
||||||
|
seneswswswseenweewswnewswwswnwswswne
|
||||||
|
sesenwswneeenwswseswswneewnenwneswe
|
||||||
|
ewewwwwwswwnwswwwnwewwww
|
||||||
|
swnenewesewwwswwsewwnwswwnwnene
|
||||||
|
wswnwsenwnwswenwnwenwnweswwwneee
|
||||||
|
weenewswswewnwnweesewnwsweswwsw
|
||||||
|
eeseeeseeeweeeseneeee
|
||||||
|
wnwenwnwnwenwnwnwnwnwswweneneswswnee
|
||||||
|
seseseswsewnwsewseeesenwseseswesese
|
||||||
|
weweesweeneeneeseeeweeseee
|
||||||
|
swseneesweenwneswnenwneewwwswswsw
|
||||||
|
nesewwenesenenwneneeneneneese
|
||||||
|
esesenewnwnweseseweeeeeeeswsw
|
||||||
|
nwswwwneswswseeswswnwswswnewsenwswesw
|
||||||
|
weeeseeseseseesesewnesenweeese
|
||||||
|
sewsesewnesesesesewneseeenesenwesese
|
||||||
|
swsesesenesenwsesewseseswseswseseswswse
|
||||||
|
neswswswwswswswswwswswswswswsw
|
||||||
|
nwnwnwnwnwnenwnwnwnwsenwnewnenw
|
||||||
|
seneneenwnwnwneswnwnwnenwnwnwnwnwnwnenw
|
||||||
|
swnweeeeeeeesew
|
||||||
|
neseswwnweeeeswseeseeeseeeswene
|
||||||
|
eeneeeseeneeseeeeewneeenwsw
|
||||||
|
senwswseesesesesweeenwseee
|
||||||
|
wwwwswwwsewswswswnewwswneswwsew
|
||||||
|
eseeneseeseswwseeweeeeneeee
|
||||||
|
wwnewwwwwwswwswwwewwwnewsew
|
||||||
|
sewwneeeeeesweeswenesesweneee
|
||||||
|
nenwnwenwnwswnwnwwswnww
|
||||||
|
swswseneswswesesenwsesewseswsesesesesenw
|
||||||
|
seeseseenwweseseseneeseeeeseese
|
||||||
|
newnenwseswwnwwwwnw
|
||||||
|
swwnewewwwwwwwwsewwwnwwwnw
|
||||||
|
swwnwnwnwswenwnwneenw
|
||||||
|
wnwnwswnenwnwweswweseswwswwewsw
|
||||||
|
nwenwnwnenwswewswnwnwenwnwnwwnwnenw
|
||||||
|
esewseseseeeeneseseeeewsenesw
|
||||||
|
swwwswwnwwnwwweswswsewwswwnesw
|
||||||
|
senwswnenwnwneenwswnwnwneenwnwnwnenwnww
|
||||||
|
wwnwwwwwwnewewwwwwsenwswsww
|
||||||
|
nwnwnwnwnwsewnwnwnwnwnw
|
||||||
|
swnweseswseseswenwwseneseneswnweswswsw
|
||||||
|
enenenewseseneseeeneneeneenenwnwne
|
||||||
|
neneneewwenesenenenenwneneneneneene
|
||||||
|
neeeneeeneneweeeneee
|
||||||
|
neseeswswswnwswwswswwswswnwswwswswsw
|
||||||
|
wwwnenewwnweseseswsenewnwnwnwwse
|
||||||
|
swwwwsewswswswswswswswwsweneswsw
|
||||||
|
seneseeseswsesesesesewseseseswsenw
|
||||||
|
nwwwwnwnwwnwsenwwwwww
|
||||||
|
wwwwwswnewewseneseswnewswwseewnw
|
||||||
|
neswnweeswneewwneeeeeneneenenese
|
||||||
|
neneeneewewsesewnwseeene
|
||||||
|
seneneneenwnwnwnwnenwnwnenwnwnenwnwswwe
|
||||||
|
wswswwwseswneswwswwsw
|
||||||
|
nenwnwesewneneewwwseswwsw
|
||||||
|
wnewnwwwwwnwnwewwwwswewseww
|
||||||
|
seeeeseenwsenweswsesesesenwseseee
|
||||||
|
nenwwsenenwnwnenwnenwnenenesenwnwnwnwnw
|
||||||
|
wwnwsewwswnewwswewwwwwwsww
|
||||||
|
seseseeeeseesenwseseseseseese
|
||||||
|
nweseseseswenesesesesewseseseseseneese
|
||||||
|
nwswswswwswsweswwsweswswswswswneswsw
|
||||||
|
wwwsewwwsewwwwwnwwenewnww
|
||||||
|
nwwnwwwwnwwsesenenwnwwwnwnwwwnw
|
||||||
|
newnewsewswneenesenenenenenwnesenwe
|
||||||
|
wnwswswnwwenwnweenwnwewnw
|
||||||
|
newnenesweneseenenenee
|
||||||
|
nesweneneneneseewneweeweewswee
|
||||||
|
wwwwswwwwwwwewww
|
||||||
|
nwnwsweswwnwnewnwnwnwnenwswwnwneswnw
|
||||||
|
esenesewswswswswswseswseseswswsw
|
||||||
|
nwnenenwwnesenenesweneswnenenenesenene
|
||||||
|
swwewnwwnewwwweswnwsewwnwnenw
|
||||||
|
swwwneseweseswwswneneswneneseswswnesw
|
||||||
|
nenwwneneneswnenenenenwnenenenesenw
|
||||||
|
swswswswseswswnwswseswswsw
|
||||||
|
swswswsweseswswswwswswswswneswswwsww
|
||||||
|
neseswseswseswswneneswswsewwswneswswsw
|
||||||
|
swwswwswwwswnwwwwwwswesww
|
||||||
|
swswsesewnwswswswseseseswswswne
|
||||||
|
nwseswswswswswseswseswse
|
||||||
|
sesewwsesewseesenesenwwseseesesesee
|
||||||
|
swnwwswswswsweswswwswswswswswswsw
|
||||||
|
nwnenenwnwnwsenenwwnwsenwseewnwesenww
|
||||||
|
wwswnwwwwenwwwwwnwsenewewwne
|
||||||
|
wsenesenwwnesenesenww
|
||||||
|
eeeeeswnwseseeeseneswenwsewswsee
|
||||||
|
swwwewwwewwswwwswnw
|
||||||
|
eeneswnweeswseeenwseeswnwweseee
|
||||||
|
nenwnwswneenenenwwnenwswneneneneneeenwsw
|
||||||
|
seseseswneesewwsenwseseesese
|
||||||
|
newnenenenwneseneenewnenenenesenenenenw
|
||||||
|
nenwswweseeswsenwsenwsewneswseneswnw
|
||||||
|
eeneewsenweeeneesewee
|
||||||
|
nwwnwwsewnwwwwwnwnenwsenweww
|
||||||
|
neneneswnewnenwneneswnenenenenenenwnesene
|
||||||
|
seseeseseswseesesenwseseswswsesenwsww
|
||||||
|
seeswnenwswwnenesenenwnwnwnenenenenene
|
||||||
|
wneneneswnenenwnwwee
|
||||||
|
newswwwwsewnwseswneenwwseewnewne
|
||||||
|
swswwwwswneeswwweseswnew
|
||||||
|
swnwseeseeewesweneeswenwswwwne
|
||||||
|
eweseeeeeeeeeenweseeeeenw
|
||||||
|
wwnwwsenewwwwwwnwnewseswswwsew
|
||||||
|
neeseseeeesesesesesesesenwsewsesew
|
||||||
|
nwnenwnenenenenwnwnenenenenenwenenesesw
|
||||||
|
senenenwnenenenenenewneneneene
|
||||||
|
senwseswwseswswseseneswswswswsenwseee
|
||||||
|
nenwwnesenenwseswsenewnenwswnenese
|
||||||
|
nenwnwnwsenwnwnwwwnwnwwwwnwwnw
|
||||||
|
seseeswsenwneeeesewwsenesenenwsewse
|
||||||
|
eeseeesenwseesweeewenwsesesee
|
||||||
|
eswnwnwwsenwnwnwwnwwne
|
||||||
|
swswsesenwswseswswswesw
|
||||||
|
nwwnwwnwnwnwnwnwnwse
|
||||||
|
newsesenwnwsewsenenewwse
|
||||||
|
swnwnwwsenwnwnenenwnwnenwnw
|
||||||
|
swswwnewewwsesenewnwseswswswswswsw
|
||||||
|
eeeneseeeseseeseeeweseese
|
||||||
|
neneneneneneseswenweseneweenewnwene
|
||||||
|
nwnwwnwnwnwnwnwnwwnwnwnwnwnwesenwnenw
|
||||||
|
senenenewswseeenwswesweeneene
|
||||||
|
nwnwnwenwnwnwnewsenwnwnenwsenenenwnwwnw
|
||||||
|
nwswswswseswswnwswswseswesenwswswswseseswsw
|
||||||
|
senwwnesenwswseseswseseswenwswesesee
|
||||||
|
weeseeeeseenee
|
||||||
|
nwnenwnwswnwnwnwnweswnenwswsee
|
||||||
|
wwwnewwwnwewneswneswnwswwsenwnww
|
||||||
|
wseswneeseseswenwsesenwnenewse
|
||||||
|
seneenwswnewneneeeeneeeneneneenenwne
|
||||||
|
sweneweeseeeseeeneewseee
|
||||||
|
eswseseenwsesesesewseenenwswnwseeswse
|
||||||
|
swneswwnwwwwwwseswwswwswswwsene
|
||||||
|
sesenesewswsesenesesesesesesesesesesese
|
||||||
|
weneweswewseseeeeneeseeenee
|
||||||
|
seeseeseenesweseesweeeeswneenwe
|
||||||
|
weseewnweeeswseseeeswswnewsenene
|
||||||
|
nenesenenenwnwnenesenenenwnenwwnwnwnenesew
|
||||||
|
nwweeeeeeeeeeseeseee
|
||||||
|
neswnenenenwnenenenwnwnwnwnenwne
|
||||||
|
neneenweeeswwseeswswenweweswnenw
|
||||||
|
wnwnwnwswewnwwwnewwnewnwwsenwnw
|
||||||
|
seeswseseswnewnwsesesesesesesesenewnwse
|
||||||
|
wnewsewewwwnwnwweeswwwnwswnw
|
||||||
|
seeseeseeeeeeeeeeenwweneew
|
||||||
|
eeeeseenwsweesenwnweeesenwswee
|
||||||
|
swwswnwseswswswswswswsweneswswswswswsw
|
||||||
|
nwnenwwnwwnwenwnwnwsenwnwnwnwwnwnww
|
||||||
|
swnewneneenewnenwswnwsenewnwneesee
|
||||||
|
wwwwwsewwwwnwnewnwwnenwseswnw
|
||||||
|
swsewweweswwwswnwwewwnewwwe
|
||||||
|
wnwenwswswwwwwwwwwwswewwne
|
||||||
|
nenenenenenenenenenenesesenenwnenwwnenwe
|
||||||
|
nwnenwenwenwwnwsenwnwnwwsenwnwnwwnwnw
|
||||||
|
seswnwnenwenwseswwenesenewneswnwnwnene
|
||||||
|
enenenwswnwnwnwnenenesenwnwsenwwnwnwnw
|
||||||
|
swsewwsewseenwnwnewnwwwnwnwnewse
|
||||||
|
seseswnwswswswswwseswne
|
||||||
|
nwwnwsewnwnwnwnwnwnwnwnwnwenwnwswnwnwe
|
||||||
|
swnenenesesenenenenwnenenewnesewneenene
|
||||||
|
seswsewswseseswseswswswnewneseswseswse
|
||||||
|
nwsewsenwnwnwwnwnwwswnewnenwwsewwwnw
|
||||||
|
seeeeseneswnwneenenwnenwneesenwe
|
||||||
|
wwneeenewseeesesesesweeesesese
|
||||||
|
swwswswsewseswswneneewneeswnwsesewe
|
||||||
|
nwneswswswsweswseswswswswseswswswnewswsw
|
||||||
|
nwnwwsenwwnwnwnwnwwwwnwnwenwsenwww
|
||||||
|
neenwswnwneenwnwwnwnenwnwswnwswnwnwe
|
||||||
|
nwswnwnwnwwnwswnwnwnwnwswneewnwnwnwnwenw
|
||||||
|
swswneseswseeeeeeseseneseesenwsewe
|
||||||
|
neseesesesewseweeweeneswseeeene
|
||||||
|
swseeswsesewswswseseeswseswnwsenwswnese
|
||||||
|
swwswwswsewswwswnwswseswwnenwswsww
|
||||||
|
nwneewnwnwnwnwwnwnwnwnwseswwnenwnwnwse
|
||||||
|
nwnwenenwnwnwnwwwenenewneswe
|
||||||
|
eseeneeneneeseneweenweneeewsw
|
||||||
|
wswswswsewswswnewweswnewwwswwwsw
|
||||||
|
newnenenwenenenenwnene
|
||||||
|
swwnwwswwwswwwenwwwewwwswwsw
|
||||||
|
neneeneneswwneneenenwseneeneneneeenwne
|
||||||
|
newnwswsweswseseswnwnwswswswseseswnee
|
||||||
|
eneeneeneweneneneswnweneesenenene
|
||||||
|
sweeeswnwneeneneenweeeneesw
|
||||||
|
neswsenwesesesesweseseweseseeeese
|
||||||
|
nwseswnwnwswneneenwnwnwwwnenesenenwnenw
|
||||||
|
sweeeeseeneesweseesenwneesweee
|
||||||
|
wwswneesewnwseseeeeweswesewsww
|
||||||
|
sesweswswseeswswsenwswswswwseswneswsesww
|
||||||
|
swneneneeseneenewnew
|
||||||
|
sesewsesenwnwesesesewseeeseswsesesese
|
||||||
|
swseswseswswewswnenwswneenwnwneswne
|
||||||
|
neneneneneneneneswenenenenwsw
|
||||||
|
weswwnwwwnwwswswnwnwewweeenwnw
|
||||||
|
wnwwwwwnwwswwnwnwsewnwwnwwwewe
|
||||||
|
nwwswwswnwneswsewseeswseseswnewnenwnesw
|
||||||
|
nwnwnweswsenwsenwswnesenwwnwsenwswee
|
||||||
|
nwwneseswswweseswseswswnenewseswswnww
|
||||||
|
eeesweneenwneeeneneswesewneswneene
|
||||||
|
weeneswswewseeeeeeenwneee
|
||||||
|
nwnwnwenwnwnwnwwwnwsewsewwwnenwnw
|
||||||
|
neenenwwneneeswseneswnewnene
|
||||||
|
enwnwnwnwnwnwnwnwnwenwsenwnwwswnwnwnwnwnw
|
||||||
|
wnwswseseneseseseswsesesewsenweeseew
|
||||||
|
swnweswnesenesewseneseseseenweeseew
|
||||||
|
nwseeeseseeseesesenwswneseseweseesw
|
||||||
|
wwwswwswneswwwwweww
|
||||||
|
seswwenwseneewneeneeswneneeswnwnew
|
||||||
|
nwswseswwwneswswswswwnwseswswesweswsw
|
||||||
|
sewswwwwswswsenwsenewwwwwwnwsww
|
||||||
|
nenenenenenwswnenenenenenenene
|
||||||
|
seseneseseesenwswsewseswswseseseswseseese
|
||||||
|
swwnesewnwseneswnenesweeeneswewne
|
||||||
|
nwnwnwwwnwwnwwnwnwswewenwnwnwnwnw
|
||||||
|
nwnwnwswwnwwsesenwnwwnwsenwenweneswnwnw
|
||||||
|
seswseeswnwseseswseswseswseseswseseswnw
|
||||||
|
swswsweswswsenewneswswsenwwswswswswe
|
||||||
|
sweswswswwwswswwnewwswnewswswnesw
|
||||||
|
weseseswswseseswsese
|
||||||
|
wnwwnwwwwwwwewwnwnw
|
||||||
|
neseeeseeswnwwnesee
|
||||||
|
nenesewswnesenenenwwnwnenweseeswwenw
|
||||||
|
seseseneswwsewnwweeeewnesesesesese
|
||||||
|
seswnewnwsenwswseseswsenwseesesesesesesese
|
||||||
|
neneneswnenwnwnesenenenenwnenesenesenenene
|
||||||
|
swneswswnewsenesweswseswwseswswswswsesw
|
||||||
|
nwnwneswsweeeneeneeeneneesenwnenene
|
||||||
|
senwnwswnwnweswwnwsenwswnwnesenwswwee
|
||||||
|
eneseswenwneseswneesenwwneeweewwsw
|
||||||
|
seewswswswenwnwwwnwnwnwwnwnwwnwne
|
||||||
|
eneenwnewswnwnewsewseneeswnwenesww
|
||||||
|
nenesenenenenwnesesenesewnenwnenwwnenese
|
||||||
|
eenesewsweeeweseweeeseneseee
|
||||||
|
weneeseesenesesesesesesesewesesee
|
||||||
|
swswwswwwswwwswnwswwnesweswwneswwsw
|
||||||
|
neswneseneneewnenenwsenwnenewneneenew
|
||||||
|
neseeswsweswwseeneenenewwnenwene
|
||||||
|
eeeneeneeeeweeeeee
|
||||||
|
nwenwwwwnwwwwwwwnw
|
||||||
|
nwswnwnwnwnwwnwnwnwnwsenwsewenwnwnwnw
|
||||||
|
swseneneneswnenenwnenenwneneswnenenenee
|
||||||
|
nenwnenwsenwnwnwwnwnenwnene
|
||||||
|
eeneeeeneeeeeeenesw
|
||||||
|
esweeeweseeeneneeenwseeswnwswswne
|
||||||
|
nenenenwnesenwnenenwnenenenenene
|
||||||
|
swnwewswwswnwswwswswnesweswswswwse
|
||||||
|
wenwneneenesweeneneeeeseneenenwe
|
||||||
|
nwnewnwnwenwswswnwnenwsenwee
|
||||||
|
wswnwesenwwswswewneswwweweswwnenw
|
||||||
|
seweswneeswneswneneeneneneneenewnesee
|
||||||
|
nenwnwnewneeneeeesweneneswneneswne
|
||||||
|
nenwenenenenenesweneneneeenenewee
|
||||||
|
nesenwneneneneneneseneswnwnenenenwnewse
|
||||||
|
wnwwsesewsewwswwneswneswwnewswww
|
||||||
|
nwnwsenenwnwnwnwnwwwenenwwwwswwww
|
||||||
|
neeseeeseseeseeseeesw
|
||||||
|
neneneswnwneneseneswwneseeneewne
|
||||||
|
nwswsewwswswewwwwwwwwwnwswsw
|
||||||
|
swswseseneseesenesenwswsesesesese
|
||||||
|
eenwwseswwwswsweeswswswswswswsese
|
||||||
|
eswneswswswswswnewwswswswweswenwe
|
||||||
|
nwseseswseswswseseseseseswnwseseneswsesw
|
||||||
|
swseeswenwseeeeseseneseseeeesenee
|
||||||
|
seeseswwwsesewseseseseseeeenwesee
|
||||||
|
seswswseseseseseseseeswenwswswswnwsesenese
|
||||||
|
nwnwwnwsenwwnwnwnwwnwnwnw
|
||||||
|
nenwnwswnwnweswnwnwenenwneeneswnwnenw
|
||||||
|
neenewneneneneeneenenwewnesenenene
|
||||||
|
swswwwnwwnenwswsesewsewww
|
||||||
|
nwnwnwwneeswswnwesenwnwsewnwwenwnwsww
|
||||||
|
wsewwwnenwsewwwsewwnewnwwsww
|
||||||
|
neeneneesweswneeewsweneneenenwenee
|
||||||
|
nwnewneeneneeseswesewenwneswneewe
|
||||||
|
wswwnewswswswswneswswswwwswsw
|
||||||
|
nwwwneneswsenewnwneeeswsweneswenwe
|
||||||
|
wswswswwswnenewewswswswwnwswseswsewsw
|
||||||
|
newwnwnwnwnenwnweswnenwnenwnwsenenene
|
||||||
|
nenwnenenenenenenwwnweneswnenenwsesenew
|
||||||
|
sesenwnewnwnwnwswsweswnwswwwwsewsee
|
||||||
|
wnwnwsenwnwnwnwnwenenwseeswnenwswnwsesw
|
||||||
|
nwnwwnwnwnenwsenwnwswnwenwswnwwenwnw
|
||||||
|
eeeeseseseeeeeweseneweesee
|
||||||
|
eswesewenweneeneeseseeseeeee
|
||||||
|
enenewnenenenenesweswnewnesenenenenenene
|
||||||
|
swnweeenwnenwnwewneswnewwswwenw
|
||||||
|
sweswseeesweeeeneeseeeeeneesenw
|
||||||
|
wnwnwswnwnenwnwnwnwnwneswnweswnwnenenw
|
||||||
|
swswswswswswwswwnwswsweswswewswwsw
|
||||||
|
nwenwnewwnwswwnwnwesenwsesenewnwnwnw
|
||||||
|
wwswwwwwwwwsenw
|
||||||
|
swwnwsewwnewwnwswnwnewwnwnwnwne
|
||||||
|
eeeesenweeenenenenweeeeswe
|
||||||
|
enesweswswewswswseswnwswnw
|
||||||
|
eswseswnwsenwsewesenenewwwseesenwse
|
||||||
|
sesewwnewwnewwwewwwnwswnwwww
|
||||||
|
nenenewnenenenenesenenenenenenenene
|
||||||
|
nenwnenenwnenwnewnwnenesenenwneswnwnwswne
|
||||||
|
seseeswnwnwseswsesewseeseseesewesenw
|
||||||
|
swsenewsewswseneseseeeeseswnweenwse
|
||||||
|
eswwnwwwewwswne
|
||||||
|
sewseneewswswseswwseeseswewseswnw
|
||||||
|
wswwwwwsewwwwwwwwwnwsenew
|
||||||
|
wnwnenenwswwwwewswsewwwesenwe
|
||||||
|
wweewnwnwsesenwwewnwwwwwsww
|
||||||
|
neenwneneeswnwnwneseenesene
|
||||||
|
nenwsenewnwnenwneswnenenwenwwne
|
||||||
|
neeseneenwneseenwseenewneswneenesew
|
||||||
|
nwnwnewnwnwwneswenwnwnwwnwsenwsenwwnw
|
||||||
|
neneweneseneewwswwnwnwsenwnewnenesene
|
||||||
|
nwnwnwnwnwnwnwnwnwwswenewnwnwnwenwnesw
|
||||||
|
weseeneeneeeeseeesesenwnwswswese
|
||||||
|
senenesewnenenwnenenenewnenenenene
|
||||||
|
wnwsenwnwwsenwnewwnwenwwwnwnwnww
|
||||||
|
enwnwnwnwnwsweswnwsenwnwwneneswwnwe
|
||||||
|
eswnenenwneneweneneeneenenenenwswe
|
||||||
|
nesesewseswseseeseswsesenesesesesenese
|
||||||
|
swnwneswnenenwswesweeesweewnweenwsw
|
||||||
|
swnwnwswswswwseneewwneewswwswswsw
|
||||||
|
ewnwswnenwwwswnwsenwnwnwnwwwwwnewnw
|
||||||
|
seseseseseeeesenw
|
||||||
|
nwnwwnwswwenwwnwnwnwnwswnwnwnwenwnwnw
|
||||||
|
nenwnenenenesenwnwswnwneneswnwenenwneese
|
||||||
|
wnwwwwswwewewwwwswnewwwsww
|
||||||
|
nwswsewswwswneswswnewswwswseswnwww
|
||||||
|
neenewneneneswenwwnewnwnwnenwsesenw
|
||||||
|
seseesesesesesesesesweswwsenwsesesese
|
||||||
|
nwewnwswneseseseewsesenwseseseeseese
|
||||||
|
ewneeeeeeesweewenewse
|
||||||
|
wnwwwwwwwwnwnwwsenenwwwwenw
|
||||||
|
wseswswswswwnenenwwewenwswnew
|
||||||
|
nenwsenenwnwnwnwnwwnwnwnw
|
||||||
|
wneeneenenenwsesewnewwsenenwswswsw
|
||||||
|
eeeeenweeswewsweeeeeenwee
|
||||||
|
wenwseswseswswnwswswswswneswseswseee
|
||||||
|
nenenwnwwenwnwnwnwnwnwnwnw
|
||||||
|
wsewwwnwnewwwwwwwwsewwww
|
||||||
|
wwwwswnwwswwswewenwswwwwnwswwse
|
||||||
|
seneswwwwewnewwwwswwswwswwwe
|
||||||
|
nesewswneswswnwwwsewwwwswswwnesw
|
||||||
|
swewseswnwnwswweseeswwswnwnweswsw
|
||||||
|
nwnwnwenwnwswwsenewswnwnwnwnweenwnwsw
|
||||||
|
swenwswswseswswswswswswswswwswseseese
|
||||||
|
nwseswnwneswwswwnweeswewnwnwwwew
|
||||||
|
nwseswwnwenwewwnwnwswwnwnwnwnwseww
|
||||||
|
enweneeeeeeeenwsweesweew
|
||||||
|
nesenenwnwwwnwwswnwnwnwwnwwse
|
||||||
|
weneeeseseneeenweeeneneenwewe
|
||||||
|
senwnwnwnwswneneswnwnwnewnwsenwwnesee
|
||||||
|
nwneseneswnenenwnwnwwnw
|
||||||
|
wnwnwwswnwnwnwnwesewnwnwswnwnwwnwnenwe
|
||||||
|
nwswwswswwseewsweseswneeneseesew
|
||||||
|
enwwnwwswwswenwwsweenwnwewnwse
|
||||||
|
seewwwswnwwswwwwswswewwswswwnw
|
||||||
|
nenwnenwneenwsenenewnwwnenwnwnenwnw
|
||||||
|
swswseseswswswneswswswswswswsesweswsenwsene
|
||||||
|
neneneswswneneseneweswnenwseswseswwsw
|
||||||
|
wwweneswwwwwswsenew
|
||||||
|
swswswnwseswswswswswswswsw
|
||||||
|
nwnenesenenwnenwnwnwnw
|
||||||
|
eeesenwseeswseeeenwneswseeenwsenew
|
||||||
|
seeeeseseeswsesenweeeewsewsese
|
||||||
|
swseneswswseneswnwswswseseswseseswwsewsesw
|
||||||
|
nwswnenenwneenwsenwswnwnenenwnwnwsenenwsw
|
||||||
|
nwseseeeenwswswnwswese
|
||||||
|
nweneneenenwsenenenenese
|
||||||
|
wswswswwwwewwwneswwesewneswwswnw
|
||||||
|
nwsenwwnenwnenwsenewnwnwnesenenenwnwne
|
||||||
|
nenwswnwenwseswnenwwnwnwnwnwwenwnenenw
|
||||||
|
wseswweswenenwswwswseneewwwnew
|
||||||
|
seeswseseesewenenwswewe
|
||||||
|
swswwswswsenenwneswseswswswswswswswswsw
|
||||||
|
wnwsewsenenenwnwsewnwwenenwswnwnwsenw
|
||||||
|
seneeseeneswsesenweseswweeswsenwswe
|
||||||
|
nenenenwnwneenewesesenenenenewsenenene
|
||||||
|
eneeneeeeeeeeseenew
|
20
2020/day24_lobby_layout/tests/sample_input
Normal file
20
2020/day24_lobby_layout/tests/sample_input
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
sesenwnenenewseeswwswswwnenewsewsw
|
||||||
|
neeenesenwnwwswnenewnwwsewnenwseswesw
|
||||||
|
seswneswswsenwwnwse
|
||||||
|
nwnwneseeswswnenewneswwnewseswneseene
|
||||||
|
swweswneswnenwsewnwneneseenw
|
||||||
|
eesenwseswswnenwswnwnwsewwnwsene
|
||||||
|
sewnenenenesenwsewnenwwwse
|
||||||
|
wenwwweseeeweswwwnwwe
|
||||||
|
wsweesenenewnwwnwsenewsenwwsesesenwne
|
||||||
|
neeswseenwwswnwswswnw
|
||||||
|
nenwswwsewswnenenewsenwsenwnesesenew
|
||||||
|
enewnwewneswsewnwswenweswnenwsenwsw
|
||||||
|
sweneswneswneneenwnewenewwneswswnese
|
||||||
|
swwesenesewenwneswnwwneseswwne
|
||||||
|
enesenwswwswneneswsenwnewswseenwsese
|
||||||
|
wnwnesenesenenwwnenwsewesewsesesew
|
||||||
|
nenewswnwewswnenesenwnesewesw
|
||||||
|
eneswnwswnwsenenwnwnwwseeswneewsenese
|
||||||
|
neswnwewnwnwseenwseesewsenwsweewe
|
||||||
|
wseweeenwnesenwwwswnew
|
Loading…
Add table
Add a link
Reference in a new issue