2020-24 part 1 in haskell
This commit is contained in:
parent
fb5cbdb4d2
commit
5a7340cc2d
3 changed files with 418 additions and 0 deletions
20
2020/24-Lobby_Layout/example
Normal file
20
2020/24-Lobby_Layout/example
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
|
65
2020/24-Lobby_Layout/first.hs
Normal file
65
2020/24-Lobby_Layout/first.hs
Normal file
|
@ -0,0 +1,65 @@
|
|||
-- requires cabal install --lib megaparsec parser-combinators
|
||||
module Main (main) where
|
||||
import Control.Monad (void, when)
|
||||
import Data.List qualified as L
|
||||
import Data.Map qualified as M
|
||||
import Data.Maybe (fromJust)
|
||||
import Data.Set qualified as S
|
||||
import Data.Void (Void)
|
||||
import Text.Megaparsec
|
||||
import Text.Megaparsec.Char
|
||||
import System.Exit (die)
|
||||
|
||||
exampleExpectedOutput = 10
|
||||
|
||||
data Direction = E | W | NE | NW | SE | SW
|
||||
type Directions = [Direction]
|
||||
type Coordinates = (Int, Int, Int)
|
||||
type Floor = M.Map Coordinates Bool
|
||||
type Input = [Directions]
|
||||
|
||||
type Parser = Parsec Void String
|
||||
|
||||
parseDirection :: Parser Direction
|
||||
parseDirection = (string "se" *> return SE)
|
||||
<|> (string "sw" *> return SW)
|
||||
<|> (string "ne" *> return NE)
|
||||
<|> (string "nw" *> return NW)
|
||||
<|> (char 'e' *> return E)
|
||||
<|> (char 'w' *> return W)
|
||||
|
||||
parseInput' :: Parser Input
|
||||
parseInput' = some (some parseDirection <* optional (char '\n')) <* eof
|
||||
|
||||
parseInput :: String -> IO Input
|
||||
parseInput filename = do
|
||||
input <- readFile filename
|
||||
case runParser parseInput' filename input of
|
||||
Left bundle -> die $ errorBundlePretty bundle
|
||||
Right input' -> return input'
|
||||
|
||||
compute :: Input -> Int
|
||||
compute input = M.size . M.filter id $ L.foldl' compute' M.empty input
|
||||
where
|
||||
compute' :: Floor -> Directions -> Floor
|
||||
compute' floor directions = case M.lookup destination floor of
|
||||
Just f -> M.insert destination (not f) floor
|
||||
Nothing -> M.insert destination True floor
|
||||
where
|
||||
destination :: Coordinates
|
||||
destination = L.foldl' run (0, 0, 0) directions
|
||||
run :: Coordinates -> Direction -> Coordinates
|
||||
run (x, y, z) E = (x+1,y-1,z)
|
||||
run (x, y, z) W = (x-1,y+1,z)
|
||||
run (x, y, z) NE = (x+1,y,z-1)
|
||||
run (x, y, z) SW = (x-1,y,z+1)
|
||||
run (x, y, z) NW = (x,y+1,z-1)
|
||||
run (x, y, z) SE = (x,y-1,z+1)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
example <- parseInput "example"
|
||||
let exampleOutput = compute example
|
||||
when (exampleOutput /= exampleExpectedOutput) (die $ "example failed: got " ++ show exampleOutput ++ " instead of " ++ show exampleExpectedOutput)
|
||||
input <- parseInput "input"
|
||||
print $ compute input
|
333
2020/24-Lobby_Layout/input
Normal file
333
2020/24-Lobby_Layout/input
Normal file
|
@ -0,0 +1,333 @@
|
|||
sweswneswswswswwswswswseneswswnwswwne
|
||||
swwswswswnwswwnwswswswwswswseenwsesw
|
||||
eeeeseeeneeenesweweeeswee
|
||||
swswswwneseneswswwnwswneswswwenewne
|
||||
seesesesenewsenwseseesesesesesenwesee
|
||||
nwsenwnwnewnewnwenenewnenenwneenenwne
|
||||
seseswsesenwnwswsenwneswswsesenwseswswsesw
|
||||
enwnwneswnewneswnwnenenwnesewsenenenwne
|
||||
swswnwsweseseswswswseweswswswnwseswsesw
|
||||
wwwweneswswwswwswswwwwswnewnww
|
||||
wwwnewwswswseswewwsewswwwswwnwne
|
||||
wswswwnwswwswwseewwweswwnesww
|
||||
wnwnwsenenwnwnwsenwnw
|
||||
nwwwsesenwnewsenenweneneeeswwsese
|
||||
senenwnwwnwsewwewswnwnwewnwnwwnwnw
|
||||
seswsesenwseswseseeseeseseewswneseww
|
||||
ewswseneswseswswswnewnwwswswswnwewnw
|
||||
nwnwnwnenwsesesenwnwwewnwnwwewwe
|
||||
swswswswswswnwseneswwswsww
|
||||
swseneweswswseswseeseswswswseswwnww
|
||||
swseswswswneswswswewwwswwsw
|
||||
wswwnwnewnwnwwnwswwnesenwnwwwnww
|
||||
wwnewnewnwswwwwwsewwwswwwswese
|
||||
wswsesewswswwwwenewwwwwwnwswsw
|
||||
seeeeneweeesweeeeneeeeeew
|
||||
swseswneneseeswweswneswsewnwswsewese
|
||||
eseseeneswsenweswesewenwseneenww
|
||||
neswnwnwnenwnwenenwwswnwswnenwnenwenw
|
||||
swewswswswswswwenwswswwswswnewswnesw
|
||||
eswwnwnwnewsenwwnewwwsweesesene
|
||||
swneneswnwneneswnwwnenwneneneneeseswwsene
|
||||
swnwnenenenwnewenwnenweeneswneswnenwswsw
|
||||
seneewesesesesenwseswsesesesewseseesese
|
||||
wseswsenwwnesenwnwenwneesewnwwnwwnw
|
||||
nwnenenwnenwnwnenenwnwneeneesesweneswnwsw
|
||||
nesenewneneneneneneenenenenenenewe
|
||||
seneseseseswswseesenwsee
|
||||
swsweswenwswneswwswswwswswewsweswsw
|
||||
ewneswewwwnwwsewwswwwwwwwww
|
||||
wwwneswnwnweseseewnenwewwswww
|
||||
swneenwnwnwnwwwwnwsenwwwenwswnwnwww
|
||||
seenwswseseesenwsenwseseseseseseswsese
|
||||
seeesweeseeneesee
|
||||
nwnwwsenewnwwnwnwwsenwnewsesenwsenwnw
|
||||
wswswseswseneeswswswswseswswseswswnw
|
||||
neeseesesewsesewseeseseeeeeenwse
|
||||
swnwnwenewnwnwnwnwnwnwnwsenwnwnwnwnwnwe
|
||||
wwenweswnweenwnwsewswneenewsenenw
|
||||
nwseeweswseeswnwneseweenesenwenee
|
||||
nwnwnwnwnwnwnwnwnwnwswsenewesenwnwnwnw
|
||||
nwwneseneeneneneneneesenwnenene
|
||||
neneeneeseneneneswneswnwnenenenenewnene
|
||||
neneeswenwseneene
|
||||
nesenenweswswswsesenwnesesewswswwsww
|
||||
wwwsewnwnwwwnwnwneewse
|
||||
wwwnwnwneswsenwewswswewnewswnwnw
|
||||
neewwewneneeeseseneeneenewseneee
|
||||
wswnweswnewswwswsewnenewwe
|
||||
neneesesenwnwsweene
|
||||
swnwenenwnwnwseswswneewnwnenwnesewesesw
|
||||
seseswseswnwswswweseswseweswsesenwsee
|
||||
swsesesenwwnwenwnwneeswseswseswesesenw
|
||||
nwnwnwnwnwnwnwnwnwnenwsenwnw
|
||||
senweeewewsewewnwesenewneswenwsw
|
||||
nenwnenwwweswsenwseseswswswwnenewswenw
|
||||
eseeesweenweeesesesewseeeenwe
|
||||
neswnenenenweeswseeseswewswnwneneene
|
||||
sewnwwswwwnwnwnenenwswenwwwnwnwnw
|
||||
wseneseeeseseseseseseee
|
||||
seeeeeseweseseseseewwsesesesesew
|
||||
swseswnwswnwnesewsweswswsw
|
||||
neseneneeneenenewseeenesweenwene
|
||||
swseswsenewswseseseswseseseswse
|
||||
nwnwnwwswwswwwnene
|
||||
nwnwewnweneneenenwwwsenwswneswee
|
||||
wnwswnwneswnwwnwwnewwenwwwsenwww
|
||||
swneswneswswneenenenenwenweneneeew
|
||||
wwswwswswswwswwseswswswswnwswne
|
||||
swnwseesesesesesesenweseeseseseesewe
|
||||
eenenwneneneswnenwneeneneeswnenenwneswne
|
||||
seeseseeswseewnweenwsenwswesesene
|
||||
wswswswswswseswsewwnwswswnww
|
||||
eeeweneeswenenewweeeenenesenee
|
||||
nwwwewswnwwwwewnwsesew
|
||||
wswsenweenwnwwnwswewswnene
|
||||
seseesenweswswseseswsesweswwswnwswse
|
||||
eeneswenenenwswnwnenenesw
|
||||
seseneswwnwneswswsweswnenwnwsenewswenesw
|
||||
neneneneneswneneswnenenenwneswnenenenee
|
||||
neeswnenenenenenenenwnewe
|
||||
swswswnwseswseswsenwswswswseswsesw
|
||||
nenwswswswswswswwsenwseswswwswswswswswesw
|
||||
wseesenwwnwswseseenwseseseswseeswsenese
|
||||
sewwnenewwwwwwswwwwwnww
|
||||
wsewseseseneeeseeweeesew
|
||||
nwnwnwnwenwnwnwnwnwnwnwenwnwnwswsenwswnw
|
||||
neswwseswseswseswswswseseswnewseswswne
|
||||
wswnwwnwenwwnwwnwwewwwww
|
||||
nwnwnwswwwwnwewnewwwnwnw
|
||||
eweeeseseeeeseee
|
||||
wswwnwnwnwnwenwnwnwswnwnwwwnenw
|
||||
nenenwnenenenenenenenesenenenenw
|
||||
wneneswneseeneenenenenweneeeneene
|
||||
wewnwenwwenwnwnwnesenwnwwnwnwew
|
||||
seseswswneseseseseseseseneswsesese
|
||||
neneneneneenwsewnesenenenenenwnwnewnene
|
||||
wwwwwnewswseswwsewnwwwwneww
|
||||
swwswwwwwwesewswwswwwswnene
|
||||
nwenwnenwneneswnwnenesewnwnenenwnwnwne
|
||||
seenwswswseseeswswnwenwenwnweesene
|
||||
senwsewnenwneswwnwnwenwswenwwnwwnenw
|
||||
newsenwseweesenewnwnwnwwwswnwnwnwsw
|
||||
eseseseeewnwesewswseenwenwewne
|
||||
wswneswswswswswswsw
|
||||
sewswsesesesesesewswwseneseenesw
|
||||
enenwnwsenwnwwsenwnwnwwwnwnwnwsewnw
|
||||
senwewswsenenwwseesweweneeseswnew
|
||||
senenenwnenenwnenwnwnenwenenwnwnwswwe
|
||||
neeseseeseseeewseeseseee
|
||||
wswwwnwsewnewswswnewwwse
|
||||
nwnwnenwwwwswwsewwwewsewswswswesw
|
||||
esweneeeneeeeeeenwne
|
||||
swwwnewswnwwswwsenweseeewswswswnw
|
||||
nwnwnwsesenwnwwwenenesewnwswwnwnwnwsw
|
||||
nwswnenenenwnwnwenenenwswnweewnwnwne
|
||||
nwnenwwnwnwewnwnwnwsenwnwsewnwnwsene
|
||||
eswnwswswswsweswwswwsweswswswswwnwsw
|
||||
enewnenenenenewneneeswnenwnenwneew
|
||||
swswseswswneswewswwseswnwwnwneswneswsesw
|
||||
nwewswseeswsenwwweswneesewenenwe
|
||||
eswswseswseseswswnewse
|
||||
nwneneneseneneneseneneneneneswnenenwnene
|
||||
sesesenwenweeenwnwswwsweeneneenene
|
||||
nwwnwnwsesenwnwnwnwnwnenenwwneswesenwne
|
||||
seewnenwwnwnewwsenwswwwwwnwnew
|
||||
eswneneeneenwneswneneneneswnewsenee
|
||||
neneswnenwnenwnwnenene
|
||||
eesweseeeeneeweeeeeenwenw
|
||||
seseseseneseseseseswswnewnwsesewswswse
|
||||
nwnwsenwswwnwnesenwenenenwneeswnwnwne
|
||||
wneswwwwnwnewnwwswswwnwwnwwsene
|
||||
eswneneswnweneneneneneeneene
|
||||
nwnwwwsenwswswnwswenenwnew
|
||||
swswswswwwnwwenwwswswswneswswseswe
|
||||
ewwnwseseswnewswwneswwswnwswswee
|
||||
eesewwneeeseneeseseweseeseee
|
||||
eeweweeeeesenweeeeeeeesw
|
||||
enwnenwnwnenwnwnwnenwswneswnwnwnwenwnw
|
||||
nwnwwwswsewwnwnweswnwwnewswnewnwnw
|
||||
eeneneewseneneeenenweeeweeseese
|
||||
nwnwswsenewwwsewnwwwneww
|
||||
newnenenwnwwnweseswsenenesenwnenew
|
||||
eseseneseeeseseswwnwseeeenwseesese
|
||||
seswswswnewnwnwewswsenweswseenwswse
|
||||
swsenenwseswseseswwseneswsewswsenenew
|
||||
wnenenwnenwnwewnwnenwseneenwnwnewnw
|
||||
neneneenwwseeenwswseeewseneeewse
|
||||
swewsesenwneseneeswenwsese
|
||||
eswseesweeenenenweenenenewnenwne
|
||||
newnenenenewnenesweneneneneenwnwnenesw
|
||||
wnwwnwwnwwnwnwsewwnwnwnww
|
||||
sewwwsewwwwwwnenwenenwwww
|
||||
eseewnesenwseseseseneswsenwsesesenenww
|
||||
neswswnewseswseeswswswsewswseseswswswe
|
||||
seswwnwsweweswnwnesenwswseeenwsesw
|
||||
nenenenenenenweneewwenesweswenenw
|
||||
seseneseswsesewnwwseesenwnwsw
|
||||
nwswnwweswnenwnwnenenenwnwnwswnenwnwnwnw
|
||||
nwswnwewswswswwewwwswswswwswnewsw
|
||||
seneseneeeeswswsenwnewnwwenenwwswne
|
||||
seeseseseenwswsewseswwneswsenewnwswne
|
||||
wwwwnwwewewswswwwwwwewnw
|
||||
neeswewwwwwwswwwseenwnewwseew
|
||||
neneswnwwnenwnwwswwnwnwesese
|
||||
eeneneeneneneneneneewee
|
||||
nwwswseneeeenewneeeeneenewsweesw
|
||||
nweswsweswneswenwsweeneswswwswwnw
|
||||
swneneneseneeeswnwswnweneneneenwneee
|
||||
seenwswnwnwswswswswseswswesweswseswsene
|
||||
swswswneswswnwenwsenesewenwnwsenwswswswe
|
||||
eeneweeseseweeseeesesenesesese
|
||||
nwnesenenwnwnenwnenwnewswneenenenenene
|
||||
wnewnenwswwnwwsenwseseeswnenewewwsw
|
||||
eeeseneweenenwwweewsweneeee
|
||||
neneswenwswnwenesweneneeeneneeneeene
|
||||
eneswweeswesenwnenenenee
|
||||
nwswweswneesesenenwswswswe
|
||||
neswseswseneswwneneneeswnwnenenewnenene
|
||||
swswesesenwsenewseseseseswseeswswswswse
|
||||
eswnwswswswseswswswswswsw
|
||||
nwnwnwewnwnwneneenwwsenwnwnwnwwnene
|
||||
enewswwseseswnenwneenenwnwsesesewnenene
|
||||
eenwnwwswenwnwnwwenesenwewneswne
|
||||
seseseseswseneseseneewswsesewsese
|
||||
neneneneneneswswnewneenwneneewnenenee
|
||||
ewswwswswwnwnwwwswswswseswwwwse
|
||||
wnwneswwswswnwwnwweenenwnwewsenwne
|
||||
sewneseenwseseseneenwswseseesew
|
||||
enweeneseswswneeneweeswsesweenw
|
||||
nwnwnwsenwnwnwnenwnwnwwnwnwnwnwsew
|
||||
nwnenwwnwnwswnwnwwnwnwwwnwenwenww
|
||||
nwnenenwneswswnwnwnenwnesenwsenenenenenenw
|
||||
sesenesewnwseseeseew
|
||||
swnwwnwsenwneswnwneenenwsenesene
|
||||
seeseswwnewwnwewwwswesenwnewsenw
|
||||
swsweswswweswwswewswswnwswwneswswsw
|
||||
seeseswnwweseenesesesenesesenwwseew
|
||||
swseswswswswsweswswsewswswenwswnesww
|
||||
nwnwwwnwwnwswnwnwseenwenwsenwnwnenw
|
||||
nwsewsewnwsesesenweswseseseseeesese
|
||||
seeneeenwneneneeeenenenee
|
||||
swnwwnwnwnwnwnwnenwnwnwnwnw
|
||||
swseeswswseneeseswseeswsesenwwswswswnw
|
||||
wnewwswsewwwwww
|
||||
nwseeswnwnweewweswnewswnwweee
|
||||
swseswsesenesesenwwseswseeswseseseenwse
|
||||
swswnwwseswneeswwswneseswnew
|
||||
seseeseneseseweeseesesenenwseswww
|
||||
nesenwwewsesweesewseswswwswnwne
|
||||
swnwwneeenwnwnwswswenwnwnenwenwwswnw
|
||||
senwnwsenwwsenwnwne
|
||||
swswswnwswwseneeneswwswnewneswnesewswse
|
||||
wsenenweewwewnwwnwnenwnwnwesenw
|
||||
nwnwnwnwwnwnwnwnwnwsenwswnwnwnwnwnwsene
|
||||
neenenwneneseneesweneswwswne
|
||||
eweeeesenweeeenwseweweeee
|
||||
wswwweswsewwnewseswwwnewwwnesw
|
||||
wnwnenwswnwnwnwnwwwnwwnwnw
|
||||
nwnwewnwswneenenwnenwnwnwnenw
|
||||
eneeweseeswswesenwnwseeswenwseene
|
||||
eswnwnwsweeeswwswnwswwswwseenww
|
||||
weswsesewnwwseeseweseseeeneenenew
|
||||
nwnwnwnwnwwewnwnwnwwnwnwsenwnw
|
||||
nwnwnwswnwnwnwnenewnwenwnwne
|
||||
nwseneewneseneeseseseswsewwsesewsew
|
||||
swsenweseseeeseswseeeseseewesenwne
|
||||
wswnwnwwwewswnwwnewsenwnwweww
|
||||
seesewswnwesenwswswsenwswswseswesw
|
||||
neesewnwsenwsewnwsweswsenenewneewse
|
||||
nwnwwwnwnwsewnewwwnwnwwnwnwswenw
|
||||
neneswswswswsesenwswswswswwswseseswswsw
|
||||
nweeswswneneeeneneewswneenenenwswne
|
||||
wseeeweseeeeseneeeeenweeew
|
||||
nenenewneneneneswneneseneeneeenenewne
|
||||
nwnwnwenwnwnwnwnwnenwswnw
|
||||
sewsesesenenesewseseseseneeesesewe
|
||||
eeneseswseweeeeeeweseeeenwe
|
||||
nwnwnwnwewnwwswnwnwnwwenwenwnwenw
|
||||
nwnwnwsewseeseenww
|
||||
nwenwnenenwswnwenenwneswneswnwnwnwnwnwne
|
||||
wwswseneswseneweswenwseseswswsweswsw
|
||||
swwwnweswswwwnesewsw
|
||||
eneeeeeeswwneneeeee
|
||||
nwnewwwwwseewswnewwwwwwnww
|
||||
senwnwnwnwnwnwnwnwwsenenwnwnwnwnwsenwnwnw
|
||||
seswnwsesewseswseeseseswewnwesenwswse
|
||||
newneswneneeneenenenenenewne
|
||||
swwwswswswweeswnwnewseseneseneenesew
|
||||
wwewwnewswnwwwwnwnwswwsewwse
|
||||
nenenesenesenewsenenwnwnesenewnwnenenenw
|
||||
seeeenwesweweeeneneseeneseswsw
|
||||
nwnwswnwsenewnenwnwnwnwsenwnenwnwnwnwnenw
|
||||
swneneneneneenesewneeeseswewswnenee
|
||||
sweewenwneenesenwsweneneeneneswne
|
||||
sesweseseenwseseseswsenwseneseseseseese
|
||||
nwsewwenenwseewnwewwsweswewnwse
|
||||
seswswseseneesewwenwswwswneseeneswswse
|
||||
sweswsweseswswswsweswswswswswnwswswwnw
|
||||
newnwseeenwnwenesewwneswswne
|
||||
nenwnenwwwneenenwnenwnenwswnwneseese
|
||||
eseenwesesesenwseweseeeeswswnwe
|
||||
nwnwwnwnwwenwnwnwwnwnwwsw
|
||||
swwwseswwnwwswswenewwswswwwnwww
|
||||
wnenwnenenwnwwnenwsenwnwsenwnwnesewsene
|
||||
swnwwsewswnewwswwwewewwnwwsw
|
||||
wsweswswneneswseneswswnwswswenwswse
|
||||
swnwseseenewseswsenw
|
||||
eesenesweeneesenwswseeseewnweee
|
||||
eneeeeneeeneneewnesene
|
||||
seeseneseswwneweseneeeswenwsesenesw
|
||||
wswseswwswswwwneswneseswneeswwwwwsw
|
||||
nwesesweewswnwenwnweswnwswsw
|
||||
nwnwnwnenwnwsenwnesenwnwenwwnwnwwnwnw
|
||||
swneswenwnwnweneenwnwswnwnenwnwnwnenenwse
|
||||
nesweswnwswnwneneeneewnwneseneeswnenese
|
||||
neeenwseneewneswnenwseeeneenenenenew
|
||||
swnwnwenwnwnweswnwnwnwnwnwnwnenwnwnwnese
|
||||
nesenewswwneneswnweneenwnenee
|
||||
swswswswswneswswswswswswswswsw
|
||||
neneneneeneneewswenenenwewneswenene
|
||||
weneneseeneneeenenenweeeeneewswe
|
||||
wwwsenwwsewnwenenenwneswwnewseseesw
|
||||
newnwnesenesenwneesewnwwnwwnwenenw
|
||||
seenwnwneeeneeeweenesweeesese
|
||||
nwnenewnesenwwnwnenwnwnwnwwnwseenwwnwse
|
||||
ewnenwswneseneeese
|
||||
wneewseeswneneswsweeeenwnesenwne
|
||||
swswseswnwsewsewnwswswwswnwswswnesesw
|
||||
seseseseseeseesesesewsese
|
||||
nwwswswwswsewwwswsww
|
||||
swneswseeneswsewswswwswsw
|
||||
neswwswswnewewnesewwesenesenesww
|
||||
newwnenwneneseesenenenenenenenweswnw
|
||||
weswsweswswswwswwneswswswswswswnwwsw
|
||||
swswswswswneswenwswweswswseswseseswnw
|
||||
wsewnwsewnwwwsweneww
|
||||
seeeeeenweesweeseee
|
||||
sesesesesesesesesewesenwswneneseseswnw
|
||||
nwnenwnwnwsenwnwnwwnwnweneswwe
|
||||
wnenwnwsewnwwnewnwsesenwnwsenewnw
|
||||
seeseneswesewnwe
|
||||
swwnenwnwenenwseswneswwnesesweeswnwnw
|
||||
swwswneswswwwswwneseeswwswswswsenwsw
|
||||
eewwwneeseneeewwewenenewne
|
||||
swswswwseneeneswwswseswswnewswnewnwsw
|
||||
newnenenewswenesenenwneneesewneenesw
|
||||
neeseswnweswswsenwwsenwweesesesesesw
|
||||
seeseeswenwnweeeeeeeenw
|
||||
seswswswseswwseenwseseswseseseesesw
|
||||
wswswswnenwswswseswswseswswseswswnesesww
|
||||
esesenweeswseeeseenesenwese
|
||||
eseseenwseseeseseweesewseseesesw
|
||||
enwnwnwsenwnwswnwnwnwnwnwnwnenwne
|
||||
esesewneneeseswseewwnweeseeswnwse
|
||||
wsewwenwswnwwsewwnwwwwswwwew
|
||||
nwswswswseneswswswneseseeswwwnesenesesw
|
||||
nwsesenwseeseesesweseseseeseeseeew
|
||||
enewwwswwewwewwnenwsewwwwse
|
||||
nwnweneeswewwnwnenwenwwwenenwnw
|
||||
wwwwwneswswswwwwwewwwswnew
|
||||
eswseseswnwswsewsw
|
||||
wsweswwwenwwwsesewweswnwswwnwsw
|
||||
nwsewwwnwnwsenwnweewwnwwnenewnw
|
Loading…
Add table
Reference in a new issue