2023-08-27 22:30:00 +02:00
|
|
|
{-# LANGUAGE LambdaCase #-}
|
|
|
|
|
|
|
|
|
|
module Main where
|
|
|
|
|
|
|
|
|
|
import Lib
|
2023-08-28 18:40:38 +02:00
|
|
|
|
2023-08-27 22:30:00 +02:00
|
|
|
import System.Environment (getArgs)
|
|
|
|
|
|
2023-08-30 09:32:12 +02:00
|
|
|
paths :: [FilePath]
|
|
|
|
|
paths =
|
|
|
|
|
[ "./data/01.in"
|
|
|
|
|
, "./data/02.in"
|
|
|
|
|
, "./data/03.in"
|
2023-08-30 10:02:11 +02:00
|
|
|
, "./data/04.in"
|
2023-08-30 12:22:06 +02:00
|
|
|
, "./data/05.in"
|
2023-08-31 08:34:48 +02:00
|
|
|
, "./data/06.in"
|
2023-08-31 08:41:20 +02:00
|
|
|
, "./data/07.in"
|
2023-09-07 08:20:07 +02:00
|
|
|
, "./data/08.in"
|
2023-09-18 08:07:05 +02:00
|
|
|
, "./data/09.in"
|
2023-09-18 11:33:52 +02:00
|
|
|
, "./data/10.in"
|
2023-09-21 19:34:24 +02:00
|
|
|
, "./data/11.in"
|
2023-09-24 20:20:47 +02:00
|
|
|
, "./data/12.in"
|
2023-09-25 12:13:13 +02:00
|
|
|
, "./data/13.in"
|
2023-09-28 15:46:50 +02:00
|
|
|
, "./data/14.in"
|
2023-10-04 17:12:03 +02:00
|
|
|
, "./data/15.in"
|
2023-10-18 10:47:20 +02:00
|
|
|
, "./data/16.in"
|
2023-10-24 09:14:43 +02:00
|
|
|
, "./data/17.in"
|
2023-10-26 15:19:42 +02:00
|
|
|
, "./data/18.in"
|
2023-10-30 13:28:52 +01:00
|
|
|
, "./data/19.in"
|
2023-11-07 16:15:01 +01:00
|
|
|
, "./data/20.in"
|
2023-11-08 22:08:02 +01:00
|
|
|
, "./data/21.in"
|
2023-08-28 18:40:38 +02:00
|
|
|
]
|
|
|
|
|
|
2023-08-30 09:32:12 +02:00
|
|
|
solutions :: [(Int, Day, FilePath)]
|
|
|
|
|
solutions = zip3 [1 ..] (map head days) paths
|
|
|
|
|
|
2023-08-28 18:40:38 +02:00
|
|
|
runAll :: [(Int, Day, FilePath)] -> IO ()
|
|
|
|
|
runAll = mapM_ (\(dayNum, day, path) -> run day path >>= printDR dayNum)
|
|
|
|
|
|
2023-08-27 22:30:00 +02:00
|
|
|
usage :: IO ()
|
|
|
|
|
usage = putStrLn "./Main"
|
|
|
|
|
|
2023-10-26 15:19:42 +02:00
|
|
|
|
2023-08-27 22:30:00 +02:00
|
|
|
main :: IO ()
|
|
|
|
|
main =
|
2023-08-30 10:02:11 +02:00
|
|
|
printHeader
|
|
|
|
|
>> getArgs
|
2023-09-22 16:08:32 +02:00
|
|
|
>>= (\case
|
2023-08-30 10:02:11 +02:00
|
|
|
["all"] -> runAll solutions
|
2023-09-22 16:08:32 +02:00
|
|
|
_ -> runAll [last solutions])
|
2023-09-24 20:20:47 +02:00
|
|
|
>> printFooter
|