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