Compare commits
2 commits
569810e0ab
...
6ab1ba5ff1
| Author | SHA1 | Date | |
|---|---|---|---|
| 6ab1ba5ff1 | |||
| 22207e0791 |
8 changed files with 1533 additions and 0 deletions
|
|
@ -79,6 +79,34 @@ executable day3
|
||||||
, base >=4.7 && <5
|
, base >=4.7 && <5
|
||||||
default-language: Haskell2010
|
default-language: Haskell2010
|
||||||
|
|
||||||
|
executable day4
|
||||||
|
main-is: Main.hs
|
||||||
|
other-modules:
|
||||||
|
Paths_aoc
|
||||||
|
autogen-modules:
|
||||||
|
Paths_aoc
|
||||||
|
hs-source-dirs:
|
||||||
|
app/day4
|
||||||
|
ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
|
||||||
|
build-depends:
|
||||||
|
aoc
|
||||||
|
, base >=4.7 && <5
|
||||||
|
default-language: Haskell2010
|
||||||
|
|
||||||
|
executable day5
|
||||||
|
main-is: Main.hs
|
||||||
|
other-modules:
|
||||||
|
Paths_aoc
|
||||||
|
autogen-modules:
|
||||||
|
Paths_aoc
|
||||||
|
hs-source-dirs:
|
||||||
|
app/day5
|
||||||
|
ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
|
||||||
|
build-depends:
|
||||||
|
aoc
|
||||||
|
, base >=4.7 && <5
|
||||||
|
default-language: Haskell2010
|
||||||
|
|
||||||
test-suite aoc-test
|
test-suite aoc-test
|
||||||
type: exitcode-stdio-1.0
|
type: exitcode-stdio-1.0
|
||||||
main-is: Spec.hs
|
main-is: Spec.hs
|
||||||
|
|
|
||||||
82
2025/aoc/app/day4/Main.hs
Normal file
82
2025/aoc/app/day4/Main.hs
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
module Main (main) where
|
||||||
|
|
||||||
|
data Cell = Paper | Empty deriving (Eq, Show)
|
||||||
|
|
||||||
|
type Row = [Cell]
|
||||||
|
|
||||||
|
type Grid = [Row]
|
||||||
|
|
||||||
|
type Coords = (Int, Int)
|
||||||
|
|
||||||
|
parseGrid :: [String] -> Grid
|
||||||
|
parseGrid = map parseRow
|
||||||
|
where
|
||||||
|
parseCell :: Char -> Cell
|
||||||
|
parseCell '@' = Paper
|
||||||
|
parseCell '.' = Empty
|
||||||
|
parseCell _ = error "Invalid!"
|
||||||
|
|
||||||
|
parseRow :: String -> Row
|
||||||
|
parseRow = map parseCell
|
||||||
|
|
||||||
|
paperCount :: Grid -> Int
|
||||||
|
paperCount = sum . map (length . filter (== Paper))
|
||||||
|
|
||||||
|
validPosition :: Grid -> Coords -> Bool
|
||||||
|
validPosition grid (row, col) = row >= 0 && row < length grid && col >= 0 && col < length (head grid)
|
||||||
|
|
||||||
|
isPaper :: Grid -> Coords -> Bool
|
||||||
|
isPaper grid (row, col)
|
||||||
|
| validPosition grid (row, col) = grid !! row !! col == Paper
|
||||||
|
| otherwise = False
|
||||||
|
|
||||||
|
getSurrounding :: Coords -> [Coords]
|
||||||
|
getSurrounding (row, col) =
|
||||||
|
[ (row + i, col + j)
|
||||||
|
| i <- [-1 .. 1],
|
||||||
|
j <- [-1 .. 1],
|
||||||
|
i /= 0 || j /= 0
|
||||||
|
]
|
||||||
|
|
||||||
|
paperSurrounding :: Grid -> Coords -> Int
|
||||||
|
paperSurrounding grid (row, col) = (length . filter id . map (isPaper grid)) (getSurrounding (row, col))
|
||||||
|
|
||||||
|
eligibleForPickup :: Grid -> Coords -> Bool
|
||||||
|
eligibleForPickup grid (row, col) = isPaper grid (row, col) && paperSurrounding grid (row, col) < 4
|
||||||
|
|
||||||
|
countEligibleRolls :: Grid -> Int
|
||||||
|
countEligibleRolls grid =
|
||||||
|
(length . filter id)
|
||||||
|
[ eligibleForPickup grid (row, col)
|
||||||
|
| row <- [0 .. length grid - 1],
|
||||||
|
col <- [0 .. length (head grid) - 1]
|
||||||
|
]
|
||||||
|
|
||||||
|
part1 :: IO ()
|
||||||
|
part1 =
|
||||||
|
getContents
|
||||||
|
>>= print . countEligibleRolls . parseGrid . lines
|
||||||
|
|
||||||
|
removeEligibleRolls :: Grid -> Grid
|
||||||
|
removeEligibleRolls grid =
|
||||||
|
[ [ if eligibleForPickup grid (row, col) then Empty else grid !! row !! col
|
||||||
|
| col <- [0 .. length (head grid) - 1]
|
||||||
|
]
|
||||||
|
| row <- [0 .. length grid - 1]
|
||||||
|
]
|
||||||
|
|
||||||
|
loopRemoveRolls :: Grid -> Grid
|
||||||
|
loopRemoveRolls grid
|
||||||
|
| grid == removeEligibleRolls grid = grid
|
||||||
|
| otherwise = loopRemoveRolls (removeEligibleRolls grid)
|
||||||
|
|
||||||
|
totalRollsEligible :: Grid -> Int
|
||||||
|
totalRollsEligible grid = paperCount grid - paperCount (loopRemoveRolls grid)
|
||||||
|
|
||||||
|
part2 :: IO ()
|
||||||
|
part2 =
|
||||||
|
getContents
|
||||||
|
>>= print . totalRollsEligible . parseGrid . lines
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = part2
|
||||||
76
2025/aoc/app/day5/Main.hs
Normal file
76
2025/aoc/app/day5/Main.hs
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
module Main (main) where
|
||||||
|
|
||||||
|
import Data.List (isPrefixOf, sort)
|
||||||
|
import Debug.Trace
|
||||||
|
|
||||||
|
type Range = (Int, Int)
|
||||||
|
|
||||||
|
type FreshDatabase = [Range]
|
||||||
|
|
||||||
|
takeWhileList :: ([a] -> Bool) -> [a] -> [a]
|
||||||
|
takeWhileList _ [] = []
|
||||||
|
takeWhileList f (x : xs)
|
||||||
|
| f (x : xs) = x : takeWhileList f xs
|
||||||
|
| otherwise = []
|
||||||
|
|
||||||
|
splitOn :: (Eq a) => [a] -> [a] -> [[a]]
|
||||||
|
splitOn x [] = []
|
||||||
|
splitOn x xs =
|
||||||
|
let e = takeWhileList (not . isPrefixOf x) xs
|
||||||
|
in e : splitOn x (drop (length e + length x) xs)
|
||||||
|
|
||||||
|
processRange :: String -> Range
|
||||||
|
processRange s =
|
||||||
|
case splitOn "-" s of
|
||||||
|
[a, b] -> (read a :: Int, read b :: Int)
|
||||||
|
_ -> error "Invalid range!"
|
||||||
|
|
||||||
|
isFresh :: FreshDatabase -> Int -> Bool
|
||||||
|
isFresh [] _ = False
|
||||||
|
isFresh ((start, end) : xs) v = start <= v && v <= end || isFresh xs v
|
||||||
|
|
||||||
|
buildDatabase :: String -> FreshDatabase -> FreshDatabase
|
||||||
|
buildDatabase range db = processRange range : db
|
||||||
|
|
||||||
|
freshIngredients :: FreshDatabase -> [Int] -> [Int]
|
||||||
|
freshIngredients db = filter (isFresh db)
|
||||||
|
|
||||||
|
parseDatabase :: String -> FreshDatabase
|
||||||
|
parseDatabase = foldr buildDatabase [] . lines
|
||||||
|
|
||||||
|
parseIngredients :: String -> [Int]
|
||||||
|
parseIngredients = map (\x -> read x :: Int) . lines
|
||||||
|
|
||||||
|
parseInput :: [String] -> (FreshDatabase, [Int])
|
||||||
|
parseInput [a, b] = (parseDatabase a, parseIngredients b)
|
||||||
|
parseInput _ = error "Wrong input!"
|
||||||
|
|
||||||
|
part1 :: IO ()
|
||||||
|
part1 =
|
||||||
|
getContents
|
||||||
|
>>= print . length . uncurry freshIngredients . parseInput . splitOn "\n\n"
|
||||||
|
|
||||||
|
data RangeEvent = StartEvent | StopEvent deriving (Eq, Ord, Show)
|
||||||
|
|
||||||
|
rangeCoverage :: [Range] -> Int
|
||||||
|
rangeCoverage =
|
||||||
|
(\(_, _, _, c) -> c)
|
||||||
|
. foldl countCoverage (0, 0, 0, 0)
|
||||||
|
. sort
|
||||||
|
. concatMap (\(s, e) -> [(s, StartEvent), (e, StopEvent)])
|
||||||
|
where
|
||||||
|
countCoverage :: (Int, Int, Int, Int) -> (Int, RangeEvent) -> (Int, Int, Int, Int)
|
||||||
|
countCoverage (_, lastEnd, 0, coverage) (start, StartEvent)
|
||||||
|
| start == lastEnd = (start + 1, lastEnd, 1, coverage)
|
||||||
|
| otherwise = (start, lastEnd, 1, coverage)
|
||||||
|
countCoverage (lastStart, lastEnd, n, coverage) (_, StartEvent) = (lastStart, lastEnd, n + 1, coverage)
|
||||||
|
countCoverage (lastStart, _, 1, coverage) (end, StopEvent) = (lastStart, end, 0, coverage + ((end + 1) - lastStart))
|
||||||
|
countCoverage (lastStart, lastEnd, n, coverage) (_, StopEvent) = (lastStart, lastEnd, n - 1, coverage)
|
||||||
|
|
||||||
|
part2 :: IO ()
|
||||||
|
part2 =
|
||||||
|
getContents
|
||||||
|
>>= print . rangeCoverage . fst . parseInput . splitOn "\n\n"
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = part2
|
||||||
135
2025/aoc/inputs/day4.txt
Normal file
135
2025/aoc/inputs/day4.txt
Normal file
|
|
@ -0,0 +1,135 @@
|
||||||
|
@@@@..@@@.@@@@@@@@@.@..@.@@.@...@@.@.@@@.@@..@@.@@@@@@....@..@@@.@@.@@@@@@..@.@.@@.@.@@.@@@@.@@@@..@.@@@@..@.@...@@..@..@@@.@@@@.@.@@@@
|
||||||
|
.@@.@.@@@..@..@@@@.@.@@@@...@@@@@@@..@@@.@.@@@..@.@@@@@@..@..@@@@.@.@@@.@@@.@@.@@@@..@@@@@@@...@@@@.@@@..@@@@.@@...@@@.@.@.@@@@.@@@..@@
|
||||||
|
@..@@@@..@@@.@@@.@@@.@@@@..@..@....@@@@.@.@@..@.@@....@@@.@@@@@@@@.@@@@@@@.@@@.@@@@@@@.@@@@@@@@@@@@@@.....@@.@@@@@@...@@@.@@.@.@@@...@@
|
||||||
|
@..@@...@@@.@..@@@@@@@.@@@@...@@@.@@@@@.@@.@@.@@..@@@@@@@.@@.@.@..@.@.@@@@@@@.@..@...@@@@@@@..@@@..@@.@@.@...@@@@@@.@@...@@..@@@.@@.@.@
|
||||||
|
@@@@@.@@@@.@..@@@@..@.@..@@@@@@@@@.@..@.@.@.@@@..@@@.@@@.@@.@@@.@@@.@....@@..@@@@@@.@.@@@..@.@.@.@.@.......@@@@@....@@@@@.@@.@@@@@.@@.@
|
||||||
|
@@@@...@..@@.@.@..@@.@.@@@.@@@@@.@@@@.@@.@.@@...@@..@..@..@@@@@@@@@.@.@@@@@@@.@.@.@@@@@.@..@@@@...@..@@@.@..@..@@@@@..@@@@@@@.@@.@@@@@@
|
||||||
|
.@..@....@@@@@@@@@@@@.@@@..@@@.@.@@@@@@@.@.@@.@...@@..@.@@.@@@@@..@.@@@.@..@@.@.@....@@.@@@@@.@@@@@.@@@..@@@@.@.@@@@..@.@..@@@@@.@@@@@.
|
||||||
|
@@@.@@.@..@.@@@@@.@..@@@@.@..@@@@@@@..@@@.@@@@.@@@....@@@@.@..@@@.@.@.@@.@.@@..@@.....@.@.@@@.@@@@@@@@..@@@@@@@@.@.@@@@@@.@...@@@.@..@@
|
||||||
|
@.@.@.@@...@.@@@.@...@.@@@@@.@@@.@@@..@@@.@..@@.@@@@@@@@@....@@@@@@@@@@@@.@@..@@.@@.@..@.@@.@.@@@.@.@@@@..@@.@@..@..@.@..@@.@@@..@@@..@
|
||||||
|
@@@.@@@@@@@@@@@@.@@..@.@@@.@.@@.@..@.@@@@@....@@@@.@.@@@.@@.@@@..@@.@@@@@@.@@@@.@@@@..@.@@.@@.@@.@@@.@@@@.@.@@@@.@@.@@@@..@...@@@@...@@
|
||||||
|
@@@@@@@.....@.@@@.@@..@@@.@@@@@.@@@@@@@@@@@.@@@.@..@@.@.@@.@.@@@@..@@...@@@@@.@..@@@@@.@...@@@@@@..@@@.@.@.@@@@..@.@@@@@@.@@.@@@..@@.@@
|
||||||
|
..@@@.@@@.@@@@@@@@.@@@.@@..@@@@.@.@@@@@@@@@.@@@@@@@@@...@@@...@@@..@@@@@@.@@@.@@.@@@@.@@@.@@.@@@@..@@.@@@@..@@@@.@.@@.@..@@.....@@@@@@.
|
||||||
|
@@@@@@@@.@@..@..@.@@@@@@.@@@@@..@@@..@@.@@@@@.@.@@@.@@@@@.@@@.@..@@@@@@@@@.@@@@.@@@@.@@@@@@@@@@@@@.@..@@@@@@.@@@..@..@@..@.@@@@@.@..@@@
|
||||||
|
@@@@@....@@@.@.....@@@@.@@@@@@@@@.@.@@@@@@.@@@@@..@@@@.@@@@.@@@.@@@@@@@.@@.@.@...@.@@.@.@@@@@.@@..@@.@@@.@@@.@@.@...@@@@.@@@...@@@@@@@@
|
||||||
|
..@@@@.@@@.@@@....@@@...@@@@@@@.@@@.@@.@@@@.@@...@@.@@.@@@.@@@@@@@..@@...@.@@.@.@...@.@@.@@@@@@@@.@@.@@@@.@@.@@.@@@...@...@.@@@@@.@....
|
||||||
|
@@.@@@@..@@.@..@@.@@..@@@@.@@.@@@.@.@@@@.@@@@@.@..@.@@.@@.@@..@@.@.@@@..@@@@.@.@@@@.@.@@@.@@@.....@..@@@@..@..@.@@@@@.@@@.@..@@@.@@@@.@
|
||||||
|
@@@@@@@.@@@@@...@@.@.@.@..@.@@@@@@@@.@@@@.@@@.@@@...@@.@@.@@@.@@.@..@@@@.@.@@.....@@@@@@@@@@@.@@@@..@@@@....@@@..@.@@..@@.@..@.@@@@@@..
|
||||||
|
@..@@..@@@...@@..@.@..@@...@..@@@..@@@@@.@@@@@@.@.@@@@.@...@...@@@...@@@..@@@@.@@@@@....@@@@@@.@@@..@@@@@@.@@..@@@@@@@@@@@@.@@@.@@@@@.@
|
||||||
|
...@@@@...@.@@@@@.@.@@@.@@@@@.@@@@..@@.@.@@@@..@@.@@@@@@@@@@@@@@@.@.@..@@.@.@@@@@.@.@@@.@@..@@@......@@@.@@.@@@@@@.@@@@@@@@@@.@....@@@@
|
||||||
|
.@@@@.@@@@@.@@@.@@....@@@.@@@@@@.@.@@.@@@.@@@@..@..@.@@..@..@.@@@@@.@@.@.@@@@..@@@@@@@..@.@@@@@.@@...@@.@.@@@.@@@@..@@@@@@.@....@...@@@
|
||||||
|
.@@.@...@@@@@..@@..@@@.@...@@@@...@..@..@.@.@.@@..@@@@@..@.@.@@.@..@@@..@@@.@@.@.@@@@@@@@.@@@.@@..@@@@.....@@@@.@.@@@@@@@.@.@@@.@@....@
|
||||||
|
.@@@.@@@.@.@.@@@@..@@@@@@@..@@@.@@...@@@.@..@@..@@..@@@@..@.....@@@@.@..@.@@.@..@@@.@@@@@.@@@@@.@@..@@@.@@.@@@@.@@@..@.@@.@.@@@@..@..@.
|
||||||
|
.@..@..@@@@.@@.@@...@.@@@@@@.@....@.@@@@...@@@@@@@.@.@.@.@..@..@@.@.@..@.@@@@@@@@@.@@@@@@@@.@@.@.@@@@@.@.@@@..@@@@.@@@@@@@@.@@..@.@@...
|
||||||
|
.@@@@..@@@.@@.@..@@@@@@@@@@@@@..@@...@.@....@..@.@@@..@@@@@@@@@@@....@@.@@.@@@@@@@.@.@@@@@@@@.@@@@@@@@@@@@@@@.@..@@.@@.@..@.@@@@@@.@@@@
|
||||||
|
..@.@@@@@@@..@@.@.@.@@@.@.@..@@..@@@@@@@...@..@@@@.@@@@@.@@.@.@@@@..@@@@@@.@@...@.@...@@...@@@@@.@.@@@@@.@@@....@@.@@.@@..@@@@@.@@@@@.@
|
||||||
|
@@@@@@.@.@@@@@@@@@@@@.@@@@@.@..@@@.@.@@@@@@@@@@@@@@.@@.@.@@.@@@@@@@@...@@@@@@@.@@@@..@...@..@@@@@@@@.@...@@@@@..@@.@@@@@..@..@@@.@@@@@@
|
||||||
|
@@.@.@.@@..@@@..@@.@@@@@.@@..@@@@...@@@@.@@@.@@..@.@@@@@@@...@@@@..@@@@.@@.@@@@.@.@.@.@@...@.@.@@.@.@.@@@@@.@..@@.@@@@.@@@.@@.@@.@.@.@@
|
||||||
|
@@...@......@.@.@@...@@@.@@@.@@.@@.@@..@@..@@@@@.@.@@@@.@..@.@.@.@@@@@@@.@@@@@@@.@@@@@@@@@@.@@@@@.@...@@@...@@@@@.@@.@.@.@.@.@@@@.@@.@.
|
||||||
|
@@@@@@.@@.@..@.@@@@.@@@@@.@@.@...@.@@..@.@@.@@..@@@@@@@@@@.@@.@.@@@@@@@@@.@@@@@@.@.@@@@...@@@@.@@@..@..@...@...@@@@@@@@.@.@@.@@.@@@..@.
|
||||||
|
....@@.@..@...@..@@@@@@.@..@@@@@@@@@..@@@@@@.@.@.@@@.@@@@@.@....@@@.@.@@@@@@@.@@@@@@..@@..@@@......@@..@@@@@@@@.@@..@@...@@@.@.....@..@
|
||||||
|
@@@.@@@@@@@@@..@.@@@@.@@@@..@@@@@@@@.@@.@@@@@..@@@@@@..@.@@@.@.@@@@@@@@@@.....@@..@.@@@@@@@@@@@@@@...@@.@@@@.@....@@....@.@@..@@.@.@@@@
|
||||||
|
.@@..@@@@@@.@@@@.@@@@..@@@@@@..@.@@@...@@.@@.@.@@@.@@@@..@@.@@@@..@@@.@@.@...@....@..@@@.@@@..@@@@@@@...@@@@@..@@.@.@@@@@@.@@@@@.@@.@@.
|
||||||
|
...@@@.@@.@@@@@....@@.@.@@@@@.@@.@@@...@.@@.@.@...@@@....@@@@.@@@@@@@@@.@.@.@@@.@@@@@@.@@@.@.@.@..@@@@@..@..@@@@@@@@.@.@@.@@@@@@.@@@@.@
|
||||||
|
@@@....@...@@@@@.@...@@@..@@....@@....@@@@.@@@@@@...@@@@.@@@@@@@.@...@..@@.@..@@......@@@@.@@@.@.@@@@..@@.@@@@.@@.@@.@@@@@@@.@@@@@@.@.@
|
||||||
|
@@@@@...@@.@...@@@...@@@@.@.@.@@@.@@...@@@..@@.@..@..@@@@@@@@.@@@.@.@..@.@..@@@@.@.@@@@@.@..@...@@...@@.@.@.@@.@.@@..@.@@@....@..@.@@@@
|
||||||
|
@@.@@@@..@@@@..@..@@@@.@.@@@@...@@@.@..@.@@@..@@..@.@....@@@@@@@.@@@@.@@@@@@@@@@@@@@.@..@@@@@...@.@....@@....@@@.@@@@@@@.@.@@@@.@@.@.@@
|
||||||
|
@.@.@@@..@@.@..@..@@@@.@.@@..@..@@.@.@@@.@.@.@.@@@@.@@.....@.@@@@.@..@@@.@@@@.@@@@@@@.@@@@@.@@@...@@.@@...@@@@@@@@@.@@.@@.@.@@.@@@@@@@.
|
||||||
|
@@@..@@@@@@@..@@.@..@.@@.@.@@.@@.@@.@@.@@@.@@..@@@@@@.@@@@...@.....@@@...@@@@@..@@..@.@@@.@.@@.@@@@.@@@@@.@@@@.@@.@@@@.@@@@@.@@@@@@.@.@
|
||||||
|
.@@@@..@..@.@...@.@@@@.@.@..@@@@@.@.@@.@....@.@@.@...@@@@@@@.@@@...@@@@..@@@.@.@@@@@@.@.@@@@@@@@@...@@@@@@..@@@..@.@@@@@.@@.@@@@@@@@...
|
||||||
|
.@@.@@@@@@.@..@.@@@@@@@.@@@.@.@@@..@@..@@@@@.@.@..@@.@@@@.@@@.@..@@@@@@.@@...@@@..@@..@.@.@..@@@@@@.@...@@@.@@@.@@..@@@...@..@...@@.@@.
|
||||||
|
.@@@@@..@.@...@@...@@@.@@@@@@@.@@@@@@@@.....@@@@@@@@@@@.@.@.@.@@@@.@@@.@.@..@@@@@@.@@@@@@....@@.@@@@.@@@@@@..@...@@.@@@@@@@.@..@@@.@@@@
|
||||||
|
..@@@@@@@@@.@@.@@@.@@@@@@@..@@@@@.@.@@@@@@....@..@..@@.@@@@.@@@@@@@@..@@@..@@@.@@@@@@@@.@.@.@@@@.@@@@@...@@.@@@@@..@@@@@@@@@@..@..@@@@@
|
||||||
|
@@@@@@@..@@.@.@@..@.@@@@.@@@@@.@.@@@@@@.@@@.@@.@@@@@@@@..@.@.@@@@.@@..@@.@@@.@@.@@@@@....@@@.@.......@...@@@@@..@@@...@@.@@.@@.@.@@@@@.
|
||||||
|
@@@..@.@@@....@.@@@@@@@@.@@..@..@..@@.@.@@.@.@@@.@..@@..@.@.@.@.@@...@@.@.@@.@.@@....@.@@@.@@@@.@.@@@@@@@..@.@..@@@..@..@@..@@@@@..@@.@
|
||||||
|
.@.@.....@.@@@..@@.@@@@@@@.@@.@@.@@@@@@@@.@@@@..@@.@@..@@..@.@.@@@..@@.@@@@@@.@@...@..@@..@.@.@.@@@.@@.@.@@@@@@.@.@@.@@@..@@@.@@..@.@@@
|
||||||
|
@...@@..@@.@..@@.@..@@@...@@@@@@.@@.@..@@.@@.@@@@@@@@..@@.@@.@.@@.@@.@@@@@.....@@@.@@..@@@@.@.@@@@@.@@.@@..@@.@.@@.@@.@.@@@@@@.@@@@.@@@
|
||||||
|
@@@@.@...@.@...@.@@@@@@@@@...@...@@@.@@@@@.@@@@@@.@@.....@@.@..@.@@@@.@@...@.@@@@@.@@@@@@@@@..@@@@@@@..@......@@.@@.@.@@..@@.@@@@@@.@@.
|
||||||
|
@@.@.@@@@@.@@@.@@@@@.@@@@@.@.@..@.@@...@@....@.@...@@@...@.@..@@@@.@.@@@@@@.@.@.@.@@@@@@..@@.@@.@@...@..@@@.....@.@@.@@@@..@@..@@.@.@@.
|
||||||
|
@.@@@@@.@.@@@@@.@@@@@@.@.@@@.@@.@....@....@@....@@@@@@@.@@@@@.@@@@@...@@.@@@@.@@@.@@...@@.@@.@@..@@@@.@@@@@.@.@.@..@@@@@@.@@@@@.@.@.@@@
|
||||||
|
@@.@@@@@..@.@@..@@@@@.@.@@@@@@@.@...@.@@..@..@@..@@@@@.....@@.@.@@.@@@@.@..@@..@@@.@....@.@.@@@.@@@.@@.@@.@.@@@@.@@@..@....@.@@.@.@.@..
|
||||||
|
@@@@@.@@.@@@@@@@@@@..@@..@@...@.@...@@@@.@.@@@@@@@@@@@@.@@.@...@..@@.@@..@@@..@.@...@@...@@..@@@..@..@@..@@@.@....@@@...@@@.....@.@@@@@
|
||||||
|
@@@@@@@.....@.@@.@@@@@.@@@@@..@@@.@@..@@@@@..@@@.@..@..@@@@@@@@@@@@.@@@.@.@@@@@..@@@@...@@@@@.@@@@@@@@..@@.@..@.@@....@..@.@@..@@.@@@@@
|
||||||
|
.@@.@@@@@@@.@.@@@..@.@@@.@.@@.@@@.@.@@@@@@@@@@@@@@@..@@@.@@.@@@@@..@@.@.@@@.@@@@@@@.@@.@.@@...@.@@...@@@.@.@..@.@@.@.@@@@.@@@@@.@@@...@
|
||||||
|
@@@@@@@.@@@..@@.@.@@@.@@@@@@@@@..@.@.@@..@@@@.....@@@@.@...@@@.@@@..@@..@@..@@.@@@..@@.@.@@@@.@@.@@@.@@@.@.....@@@.....@@@@@@@@@.@@@@@.
|
||||||
|
@@.@..@.@@.@@......@@..@@@..@@...@.@@@@@@.@@.@@.@..@@...@@..@@@.@..@@@@@@.@.@@...@.@@@.@@@@.@@..@@@@@@@.@.@@@...@..@.@@@@..@@...@@@...@
|
||||||
|
..@@@@.@..@@....@.@....@@@@@.@@..@@@@@.@..@@@@@@..@@@@@@@.@.@@@.@@.@@@@@@@..@.@@@@.@..@@@@@@@...@@@..@@@@@..@@@.@@..@@.@.@@.@@.@@@.@.@@
|
||||||
|
@@.@@.@.@@@.@.@.@..@@....@@@@@.@@@@.@@@@.@@@@.@@@@@@.@@@@...@@@@.@@..@..@@@@.@@@@..@@.@.@.@@@.@.@@@@@.@..@@@@.@.@@.@@.@@@@@@@.@@@@@@..@
|
||||||
|
@@.@@@.@.@.@@@.@@.@@@@..@@..@@@@@@@.@@.@.@@.@@@.@..@@@..@@@@@@@@..@@@@.@@@@.@@@.@@.....@@..@@@@@@@.@@.@.@.@@@@@..@@.@@.@@@@.@@.@@@@...@
|
||||||
|
@...@@@@.@@@@@@..@...@@@@@.@@@.@@@..@.@@.@@@..@.@@@@..@@@@..@.@@.@.@@@.@.@@...@..@@.@.@.@@.@.@@@@.@@..@@@@.@@.@@..@.@@@.@@@.@@@@@@@@@@@
|
||||||
|
.@@@.@@.@...@..@.@@.@..@@..@.@@@@@@..@@@.@@@..@..@.@@@.@@..@@.@.@@@.@@@.@.@.@.@.@@.@.@..@.@@@.@@@@@@.@...@.@@@.@@@.@.@.@.@@.@@..@.@@.@.
|
||||||
|
@@@@...@@@@.@@.@.....@@@@@@.@..@@@@@@@@@@.@..@.@@@@..@@@@@..@@.@.@@@@@..@.@@...@.@.@.@@..@@@@@.@..@@.@.@@.@.@.@@...@@@@@.@@..@@@@.@@.@.
|
||||||
|
@.@@@.@.@..@@.@.@.@.@.@@@@@@.@@@@@@@@@.@@@@.@@@@.@@.@@@..@@@@@@@@@@@@@.@@@@@@..@.@@@.@..@@..@@@@.@@.@..@.@@.@@@@@@@.@.@@@@@.@.@@@@@..@@
|
||||||
|
@.@@@@@@.@.@.@@.@.@@..@@@..@@.@@@..@@@@@@...@.@..@@@@@@.@...@@@.@..@.@@@@@@@.@@@@..@.@@.@.@..@@@@@@.@@@@.@.@@..@...@.@@.@@@.@.@@@.@@.@.
|
||||||
|
@.@@..@.@.@@@@@@@@@..@@@@...@@@@@@@.@@@.@@.....@.@....@.@@.@@@@@...@@@...@@..@@@....@@@..@@@@.@..@.@.@.@@@.@@@@@.@..@@.@.@@@@@@@@@.@@.@
|
||||||
|
@@@@@@@@@@@.@@@@.@@.@@.@@@@.@@@@......@@@@..@@@.@..@@@.@@@.@..@.@@@@.@@..@@@.@@@....@.@@@.@..@@@@@.@@..@@@.@@@@@.@@@@@.@@@@@@@.@@@@@@@.
|
||||||
|
@.@@@@.@@.@.@@@@@@@@@.@@@@@@.@@@.@.@@@@@@@.@@.@@.@....@@@@@.@@..@@@@.@.@.@@@@.@.@@.@@..@@@@@.@@@@@@@.@....@@@@@@@.@.@@@@..@.@@@@@@@@@.@
|
||||||
|
@..@.@.@@@@@@@@..@@@@@@.@.@@@@@..@@@.@.@..@@@.@.@.@@@.@@@..@@@@@.@@.@@@@@@.@@.@@@@@.@@.@..@@.@@@..@@@@@@@..@@.@..@.@@@@@...@@.@@@@@@.@@
|
||||||
|
..@.@@@@@@.@@@@@.@.@.@.@@@.@@@@@@.@.@@@@.@..@@@.@@.@@..@@@@@@@@@@@.@.@@@.@@@.@@.@@.@@@.@@...@@@@@@@..@.@@@@..@@@.@@@@.@@@@@@@@@@@@@.@@@
|
||||||
|
.@.@@.@@@.@@.@@.@@@@.@@..@@.@@@@@@@@@.@.@.@.@@@@@.@@@..@@@..@.@@@@@@@..@.@..@.@@@.@.@@.@.@...@@..@@@.@@....@@@.@@@@.@@.@@.@@@...@@@@.@@
|
||||||
|
@@@@.@.@@@.@.@...@@@@@.@.@@..@..@@.@@@.@@@@.@@.....@.@.@@@@....@@.@@.@@@@@.@@@@@@.@@@@@.@@@...@.@.@@.@..@@@@...@.@@@@@.@@@@@@..@.@.@@@.
|
||||||
|
...@@@..@.@@@...@@@@@@.@..@.@@@..@@.@@@@@@.@@@@@.@@.@@.@.@.@.@..@@@@@.@@.@.@..@@@@@@.@@@@@@.@@.@.@@@@@@.@.@.@@@@@@@..@.@@@.@@...@.@...@
|
||||||
|
@@@@.......@@..@@@@@.@@.@.@@.@@@.@.@@@@@.@.@..@.@..@@@@@@.@@@.@.@@@..@@.@@...@@@@...@..@@@@.@@..@@@@@@@.@@@....@@.@@@@@@.@@@@@..@@@@@.@
|
||||||
|
@.@.@@@..@@@@@@...@@.@@.@.@.@.@...@.@..@@@@@@@.@.@@@@@...@.@@@@@.@..@@@@@.@@@.@.@@@@.@..@.@@@@.@@@@.@@@@.@@@.@@@@@.@@@@@..@@.@@@..@.@@@
|
||||||
|
@@@@.@...@@.@@@@@..@@@..@.@@@.@@..@@..@@@@.@@..@@@.@.@@.@@..@.@@@@@@@@@@.@@@@.@@....@..@@.@@..@@.@....@..@@@@@@.@@.@.@@@.@@@.@.@@@.@...
|
||||||
|
.@...@.@@.@@@@.@@@@@.@@@@.@.@.@.@..@....@@@@@@@@@.@@.@@@@.@...@@@.@@@@@..@..@..@@@@@@.@.@..@@..@.@@@..@@@.@..@@@@.@@....@@@@.@@@@.@@.@.
|
||||||
|
.@.@.@..@...@.@@@@@.@@@@@@@.@@@@@.@.@@.@.@.@@.@@@@@@.@..@.@@@@.@@.@..@@@@@@.@@.@@@@@@...@...@@@@..@@.@@.@@.@@@.@@.@@@@@@@@@.@@.@@..@@.@
|
||||||
|
@.@@@@@@@@@@@.@@..@@@@@..@.@.@@@..@@@@@.@.@@@@@@@@@@@.@..@@@.@..@@@.@@@@@@.@..@.@@.@@@@.@@..@.@..@..@@@.@@@@@@@@@@.@@.@@@@@.@@@@...@@..
|
||||||
|
@@.@@@.@.@..@@@@@@@@.@..@@@..@.@@@@@.@@@@@..@@..@@.@@.@.@@.@@@@.@.@.@.@@@.@.@@.@@.@.@.@@.@@@@..@@..@@.@@@@.@..@@@.@@.@@@@@.@@@@.@..@.@@
|
||||||
|
@@..@.@.@@.@@..@@@..@..@@.@@@..@@@@@.@@@@..@@@.@...@@@.@..@.@@.@@..@@@.@@@@@@.@.@@@.@@@@@.@.@@@.@.@@@..@@@.@@@.@.@@@...@@@@@.@.@@@@..@@
|
||||||
|
.@@.@.@@.@...@@.@@@@@.@@@@@..@@@.@@@..@@.@@@.@@@@..@@@.@@@.@.@...@@@@@.@@@@@.@@..@@.@@@...@@.@@@.@@.@@@@.@@...@@@@@@@@.@@@..@.@@.@...@.
|
||||||
|
..@.@.@@.@.@@@.@@@@.@@@.@@.@@.@@@...@.@.@.@@@@@@@@@..@.@@.@@@@@.@.@@@.@@@@@@.@@@.@@..@@.@..@.@..@@@@.@@.@@@@.@@..@@.@.@@@@@@.@@.@.@.@.@
|
||||||
|
@.@@@@@@..@@.@@.@..@@.@..@.@@..@@@..@.@@..@...@.@@@@@.@@@@@..@@.@@@.@.@.@....@@.@@@.@.@@@@.@@@@@.@..@.@@.@.@..@@@@.@.@..@.@@@.@.@@@.@@@
|
||||||
|
@..@.@@@@@@..@@@@@.@@@.@@@.@.@@.@..@@..@@@...@.@@@.@@@@.@@.@.@@.@.@@@@..@@@@@..@....@@@.@@@.@@@@@@@@@@@.@..@@@@@@@@@@@.@..@.@.@..@@@@..
|
||||||
|
.@.@.@.@.@@@.@@@@@@.@@..@@@@@@@......@.@@@.@.@..@@@.@.@@@@.@@.@.@..@@.@@.@@..@..@@@@@.@@@@@..@@.@@@@.@@@.@@@...@.@@@@@@..@.@@@.@.@@@..@
|
||||||
|
@@@@.@@..@.@@.@@@..@.@@@@.@.@.@.@.@@@@....@@@.@@@.@.@.@@.@..@...@.@@.@@@...@.@@..@..@.@@@.@.@@@..@@.@.@..@@@@..@@@.@.@@@@@.@@@.@..@@@..
|
||||||
|
@@@@.@@..@@@@@.@..@@.@@..@.@@.@@.@@.@@@.@@@@@@.@@@@@.@@.@@.@@@@.@@@@@@.@..@.@@.@@@@...@.@@@@@.@.@@@..@@....@@.@@.@@@@.@@..@@@.@@...@.@.
|
||||||
|
@.@@.@.@@@@@@.@.@@@@@@@@@.@...@@@@.@@.@@@@@...@@.@@@.@@@.@@.@@@..@@@@.@.@@@@@@@@.@...@.@@@.@@..@@@.@......@@@..@@.@@.@@@@@.@@@@@@.@@@@@
|
||||||
|
..@@@@@@..@@@...@.@@.@@@@@@@.@@@@@@.@@..@.@@@.@@...@@.@@.@..@@..@@@@.@@..@@.@.@@@@@@.@@@@@@@@.@@.@@@@@@@@@.@@.@@.@@..@@.@@.......@@..@@
|
||||||
|
@.@@.@@@@.@@@@@@@...@.@@@.@@.@.@.@@@@.@@@@@.@@..@@@@.@..@@@@@@...@@@@@@@@@..@@@.@@@...@@@.@..@@@@@@.@@.@.@..@.@@.@@@.@.@@@.@@@@@@.@.@@@
|
||||||
|
..@@.@@..@..@@@@@..@@@@@@@.@@@.@@@.@@.@..@..@@.@.@....@@.@.@.@@@.@@..@@@.@@@@@@@@@@@@@.@.@...@@@.@@.@@..@.@.@@@..@@@@@.@@@@...@@@@@@@@@
|
||||||
|
..@.@.@.@@@@@.@.@@@@.@...@@@.@@@@@@...@@.@@.@..@..@.@...@...@@.@..@@.@..@@..@.@@.@@..@@@@@@@.@@@..@.@@@@@@@@@@@..@@@.@@@..@@@@@.@@@@.@@
|
||||||
|
@..@@.@@@.@.@@@@.@@@@@..@@@@@@.@@@@.@@@@@.@@@.@@.@@..@@@@@..@@@@@..@@@@@@@@@.@...@@@..@@.@@@@@@.@.@@.@..@.@..@.@@..@....@@@..@@@@.@@@.@
|
||||||
|
..@@@@@.@@@@@@@@..@@@.@@@@.@@@..@@.....@@.@.....@@@..@.@@@@@@..@.@@@...@@@..@.@@@@@@@@@@.@.@@@..@@.@@.@.@@@@@@..@..@.@..@.@..@.@.@@@@..
|
||||||
|
@@.@@@.@..@@.@@..@@...@@@.@@@@@@@@@..@@.@@@.@.@@...@@@@@.@@.@@@@...@@..@@@...@..@@@@@@...@..@..@.@@.@@@...@@@@@@..@@@@.@@@...@.@@@.@@..
|
||||||
|
@...@@.@@.@@@.@@.@@@@@@@@@.@@.@@@@.@@@.@@.@.@.@.@@@@@@@@.@.@...@@@@@.@@.@@.@@@..@@..@@...@@@@@.@..@@@@....@@@@.@@@@@..@@@@@@@..@@......
|
||||||
|
.@.@@..@@..@@@@@@.@.....@@@@@.@.@@.@...@.@.@@@.@@@.@..@@...@@@@@@.@@@@@...@..@@@@@@@@.@@@..@@@@@@.@@@.@..@@@@@@@@.@...@@..@@@@@....@@@.
|
||||||
|
@@@.@@@@.@..@@@.@@@@@@.@@.@@.@.@...@@@.@@@@.@@@@@@..@@@.@@@@@.@@@..@@@@@.@..@@@@@@@..@@@@...@@@..@@@@@@@@@@@@@.@.@@.@@@@.@@@........@..
|
||||||
|
@.@@@@.@.@@@@@@@@@@@@.@@.@@@...@@.@@@.@.@.@@@@@@@@@@@...@@.@@.@@.@@.@.@@@@.@@@.@.....@@@@..@...@.@.@@@..@@@..@@@@..@@@..@.@@@@.@.@.@@@@
|
||||||
|
@@.@@@.@@@...@@@@@..@.@@@...@@@@@.@@..@.@.@.@@@@.@@.@@.@@@@@@@@@....@@@@@.@@.@.@@@@.@.@@@....@@@.@@@@@.@@@@.@@.@@@....@@..@@@@@..@@@@.@
|
||||||
|
@...@@@.@..@@@.@@@@.@@@.@.@@..@@@@..@.@@.@.@@@@@.....@@@@.@@@@@@..@@@.@@.@@@@@@@..@@@@.@@@@@..@@..@..@@@.@@@@.@...@@.@.@.@...@@@@.@@.@@
|
||||||
|
@@.@@@@.@@..@@@@@@@@@@@.@@@@.@.@.@@@.@@@@@@.@@@@.@......@@@.@@@@@@@@..@@@@@@.@@.@@@@@...@@...@.@@@..@.@@@@@@.@@@@.@@@@@.@.@@@@@.@@@@@@.
|
||||||
|
@..@..@@.@..@@....@.@@@..@@@.@@@@.@@.@@@@@@@@@@..@@@@@@@@@@@@@..@@@@@.@@..@@@@@.@@@@@@@@@..@@.@@@..@..@@@....@@.@.@@@@@@@...@..@@.@@@.@
|
||||||
|
...@@..@@..@.@@@@@@@@@@.@@.@@@...@@@@.@@@.@@.@@@@....@@@@@.@.@@.@.@@.@..@.@@@@@@@@@@@.@@@.@@@@..@@@..@@.@@.@@@@.@.@@@@@@@@@.@@@@.@.@@@@
|
||||||
|
@@@@@@..@@@@@@..@@@@@@.@@@.@@.@.@.@@@@@.@@..@@@@@...@@@@.@@@@@@..@.@@@@@@@@@@@.@@@.@@.@@@@@@@@..@@@.@@@@..@.@@.@.@@..@@.@@@..@@@@@..@@.
|
||||||
|
..@@...@@@@.@..@@@.@@.@@@@@@@@@@.@@@..@@.@@@.@.@@.@@.@@@.....@.@.@@.@......@.@.@@@.@@@@@@@@....@@@@@@...@..@@.@@@@...@@@@@.@@@@.@@@@.@.
|
||||||
|
.@@@@.@@...@@.@@.@..@@@@..@@.@@@.@@@@@@..@@@@@..@@@@@..@.@@..@@@.@.@.@@@.@.@@....@@@@@@..@..@@@@.@@@@..@@@@@@.@.@.@.@@.@@..@@...@@@@..@
|
||||||
|
@@@@@.@@..@.@@@@@@...@....@.@@@...@.@@@@.@.@@@@@@@...@@@.@@.@@.@@@@.@.@@..@..@.@.@@@...@@.@.@@.@..@@...@@@.@@@.@@..@@.@@@@@.@.@@.@@.@@@
|
||||||
|
@.@.@.@@@@@.@..@..@@.@..@@.@@@@@..@.@.@@@@@..@@@@.@.@@@@.@@@.@..@@@@@@@@@@@@@.@@.@.@@@.@@@@@@...@@@.@@.@@@@@@.@@@.@@.@@@..@@@@@@@@.@.@@
|
||||||
|
@@@..@.@.@@@.@@..@@@@.@@.@@.@@@@....@@..@.@@@@..@.@.@.@.@.@@@@@.@@.@.@@..@.@.@.@@@@@@@....@@@@.@..@.@@.....@@@@@@@@@..@..@@.@....@@@@@.
|
||||||
|
@......@@@@.@@@@.@...@..@@....@.@...@..@@@.@@.@@@..@@.@..@.@..@@.@..@@...@..@@...@@@@@@@@.@.@@@@@@@..@@..@..@.@@...@...@@@.@@@@@.@@.@.@
|
||||||
|
.@..@@.@@.@@..@@@.@.@@@@@@@@@@@@.@@@@@@.@@@@@@@@@@@@@.@..@@.@@@@.@@@@@.@@@.@.@@@@@@@..@@@@.@@@@...@@@..@@@@.@.@..@@..@@@@@.@@@.@@@.@@@.
|
||||||
|
.@@@@..@.@@@@@...@@.@@@.@..@@@@@@@.@@@.@.@.@@@@@@@@..@@@@.@@..@@@.@@..@@@.@@....@@@@@@@@@@@@.@@@@.@.@@@@@..@.@@@@@@@@@@..@@@..@@@.@.@.@
|
||||||
|
@@.@@@@@@@@@@@@.@@@.@@@@@@@@.@.@.@@@@@@@@@.@@.@@@@@..@@@@@@...@@@@.@@..@@.@@@@@.@@...@@@@@@.@.@@@@@@@.@.@@@@@..@.@.@@@@.@.@@.@@.@@@@..@
|
||||||
|
@@@.@.@@...@@.@@@@@.@@@@@..@@@.@.@@..@@@.@@.@..@@.@.@.@.@.@@@@@@@@@@@@@@@..@@@@@@@..@.@@@@@@@@.@@.@@@..@@.@.@@..@@.@@@..@@@.@@@@...@@.@
|
||||||
|
.@@@...@@@.@.@@@@@@@@.@..@@...@@.@@..@...@@@.@@@@.@@@@@@@@@.@@.@@.@@..@@@.@@@@.@.@@@@@@@@@.@..@@.@.@@@@@@@..@@@@@@.@..@@@.@@..@.@@@@...
|
||||||
|
..@@.@.@@@.@@@@@@@@.@@@@@@@@@@@@@.@.@@.@.@..@@@@..@@@@.....@@.@@@@@@@...@@@@.@@@@@.@@..@@@.@@@@..@@.@@.@@.@@.@@.@.@.@@.@@@@.@@@@@..@..@
|
||||||
|
.@@@@@@@@@@@@@.@@@.@@@@.@@@@.@@@.@@..@@@@@.@@@@@@...@@@.@@.@@..@...@@@@.@@@@@.@@@@@@@@@@@@@@@.@@@..@@@@@..@@..@.@.@.@@@..@@@...@@..@@..
|
||||||
|
@.@...@@@@@@@@@@@@.@@@@@@@@@@@@@.@@@.@.@@@@@...@@.@@@.@@@@.@@...@@.@.@@@..@..@@@@@.@@.@..@.@@.@@@@@@@..@..@.@@@@@@.@@@.@@...@@@.@@@@@@@
|
||||||
|
@@.@.@@@..@.@@@@.@@@@.@@@@.@.@..@@....@@@@@@@@@@.@@.@@@@@.@..@.@@.@@@@@@@@@@@@@@@.@@@@..@@@@@.@@.@@@.@@@..@.@@.@@@@@.@@@.@.@.@.@@.@@@..
|
||||||
|
.@..@@@..@.@.@.@.@@@@@@@@@..@..@@@@@@@.@@@.@..@.@@......@.@@@.@@@@@.@.@@.@...@@@@.@@.@@.@@.@.@@.@@@@@@.@@@@...@@@@@.@.@@.@@@@@.@@.@@@.@
|
||||||
|
@@.@.@@.@@@@@@@@@@@@@...@.@.@@@.@..@@.@@.@..@@@@..@@@@@@@@@..@.@@@.@.@.@@..@@@@@.@@@....@...@@@@@@...@@@@@@@@.....@@@@..@.@@.@.@@@..@@@
|
||||||
|
@.@@@@@..@@@@..@.@@@@@.@.@.@@.@@@@@@.@@@.@@@@@@.@.@@@.@.@@@@.@@.@@@@@.@@@@.@@@@@@@@.@@...@@@@@@@@@@@.@@@.@@..@@@@.@@.@@@@.@@@@@@@@@@@@@
|
||||||
|
.@@@..@..@@@@@@@@@@.@@@@@.@.@..@@@.@.@@@@@@.@@@@@...@@.@@@@.....@.@...@...@@@@@@@@@@.@..@@@@@..@@@@.@@@.@@...@.@@@@@@@....@@@@..@@.....
|
||||||
|
@..@@..@.@@..@@@@@..@.@..@.@.@.@@@@.@@@.@.@@@.@@@@@.@@@@@.@.@@@.@.@@@.@...@@@@@.@.@@@@...@.@@@.@.@@.@.@.@@@@@@@@@.@@@@@@.@...@@@@.@.@@.
|
||||||
|
@.@.@@@@@@@@.@.@@..@..@@@@@.@@@@@@...@@@@..@@..@@@@.@@.@@.@@.@...@@...@..@.@@@.@.@.@@.@.@@@@...@@@@@@@@@..@@@@..@@@@@@@@......@@@...@..
|
||||||
|
@@.@@@@@.@@@@..@@.@.@@@..@.@@@.@@@@.@@@@@@@.@.@@@.@@@....@.@@@@@@..@@@.@.@@.@.@@.@@@@..@@@@@..@@.@@@@.@..@@.@@@@@@.@@.@.@..@..@.@@..@.@
|
||||||
|
@@..@@@.@..@..@@@@@.@@.@@@@@@.@..@..@@@@..@@...@@@.@@.@@..@@@@.@..@@@..@@@..@@@..@@@.@@...@@@@.@@@@.@@@@...@@@.@@@.@..@@@.@@.@@@.@@@@@@
|
||||||
|
.@.@.@@@@@@@@@..@@@@@@..@@.@..@@..@@@..@@@@@.@@@.@@.@.@@@@.@.@@@@@@@.@@@@@.@@@@@@@@..@..@@@@@@@@.@@@.@...@@.@@@.@@.@@..@@@@@@@@@@@@..@@
|
||||||
|
@..@..@@@@.@.@.@.@.@....@.@@@..@@@@@@.@@.@@..@..@..@@.@..@@@@@..@@.@@@@@..@@@@@@...@@..@@@@@.@....@@@..@.@.@.@.@@@@.@.@@@.@..@@@@@.@.@@
|
||||||
|
@@...@@@.@@.@.@.@.@@.@@@@.@@@@@@@.@..@@@@@@@.@@@.@.@@@..@.@@.@@@@.@.@@@@.@@@...@@@@@@@@@.@@..@@@.@.@.@@..@..@@.@@@@@@..@.@@.@.@@.@.@.@@
|
||||||
|
@@@@..@...@..@@..@.@@@...@@@@@@@@.@@.@..@.@..@.@@@.@@.@@@@..@@@@@@@..@@.@@@.@@.@.@@@@@@.@@.@@@@.@.@..@@@@@@@@@@.@.@@@@@@.@..@.@.@@@.@.@
|
||||||
|
@.@@@@@@@@.@@@..@.@.@.@@..@...@....@@@..@@@.@@..@@@..@@@@@@@@.@@....@@@@@@@@..@.@@@..@.@@@.@@@@...@@@..@@@@@.@@@@@.@.@@.@@..@@@@...@.@@
|
||||||
|
@@.@..@..@@@@...@.@@.@@@..@.@@@...@@..@.@@@@.@..@...@@@@@.@.@@@.@@@@@@.@@@@@@..@@...@..@@@@.@.@.@.@..@@@@.@@.@..@.@@@@@@..@@@@.@.....@.
|
||||||
|
@.@.@@@@@@@@.@@..@@.@.@@@@@..@@.@@@@@.@.@.@@@..@....@@@@@@@@@@@@.@@@.@@.@.@@@@.@@@@.@...@.@@.@...@@.@.@@@@@@.@.@@@@@@...@.@@.@..@@.@..@
|
||||||
|
@.@@.@...@@@.@.@@.@@@@@@@@.@@@@@.@@@@.@@.@@@@..@@.@@...@@.@@@@@@.@@.@@.@@@@@.@@.@@.@@@.@@.@.@.@.@@.@.@@.@.@@@@@@.@..@@.@@.@..@@@..@.@@@
|
||||||
10
2025/aoc/inputs/day4_test.txt
Normal file
10
2025/aoc/inputs/day4_test.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
..@@.@@@@.
|
||||||
|
@@@.@.@.@@
|
||||||
|
@@@@@.@.@@
|
||||||
|
@.@@@@..@.
|
||||||
|
@@.@@@@.@@
|
||||||
|
.@@@@@@@.@
|
||||||
|
.@.@.@.@@@
|
||||||
|
@.@@@.@@@@
|
||||||
|
.@@@@@@@@.
|
||||||
|
@.@.@@@.@.
|
||||||
1173
2025/aoc/inputs/day5.txt
Normal file
1173
2025/aoc/inputs/day5.txt
Normal file
File diff suppressed because it is too large
Load diff
11
2025/aoc/inputs/day5_test.txt
Normal file
11
2025/aoc/inputs/day5_test.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
3-5
|
||||||
|
10-14
|
||||||
|
16-20
|
||||||
|
12-18
|
||||||
|
|
||||||
|
1
|
||||||
|
5
|
||||||
|
8
|
||||||
|
11
|
||||||
|
17
|
||||||
|
32
|
||||||
|
|
@ -64,6 +64,24 @@ executables:
|
||||||
- -with-rtsopts=-N
|
- -with-rtsopts=-N
|
||||||
dependencies:
|
dependencies:
|
||||||
- aoc
|
- aoc
|
||||||
|
day4:
|
||||||
|
main: Main.hs
|
||||||
|
source-dirs: app/day4
|
||||||
|
ghc-options:
|
||||||
|
- -threaded
|
||||||
|
- -rtsopts
|
||||||
|
- -with-rtsopts=-N
|
||||||
|
dependencies:
|
||||||
|
- aoc
|
||||||
|
day5:
|
||||||
|
main: Main.hs
|
||||||
|
source-dirs: app/day5
|
||||||
|
ghc-options:
|
||||||
|
- -threaded
|
||||||
|
- -rtsopts
|
||||||
|
- -with-rtsopts=-N
|
||||||
|
dependencies:
|
||||||
|
- aoc
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
aoc-test:
|
aoc-test:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue