Day 3
This commit is contained in:
@@ -25,8 +25,10 @@ library
|
|||||||
Util
|
Util
|
||||||
Days.D01
|
Days.D01
|
||||||
Days.D02
|
Days.D02
|
||||||
|
Days.D03
|
||||||
build-depends:
|
build-depends:
|
||||||
base ^>=4.18.0.0
|
base ^>=4.18.0.0
|
||||||
|
, extra ^>=1.7.14
|
||||||
, megaparsec ^>=9.4.0
|
, megaparsec ^>=9.4.0
|
||||||
, text
|
, text
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import Print
|
|||||||
|
|
||||||
import qualified Days.D01 as D01
|
import qualified Days.D01 as D01
|
||||||
import qualified Days.D02 as D02
|
import qualified Days.D02 as D02
|
||||||
|
import qualified Days.D03 as D03
|
||||||
|
|
||||||
import System.Environment (getArgs)
|
import System.Environment (getArgs)
|
||||||
|
|
||||||
@@ -14,6 +15,7 @@ solutions :: [(Int, Day, FilePath)]
|
|||||||
solutions =
|
solutions =
|
||||||
[ (1, D01.day, "./data/01.in")
|
[ (1, D01.day, "./data/01.in")
|
||||||
, (2, D02.day, "./data/02.in")
|
, (2, D02.day, "./data/02.in")
|
||||||
|
, (3, D03.day, "./data/03.in")
|
||||||
]
|
]
|
||||||
|
|
||||||
runAll :: [(Int, Day, FilePath)] -> IO ()
|
runAll :: [(Int, Day, FilePath)] -> IO ()
|
||||||
@@ -29,4 +31,4 @@ main :: IO ()
|
|||||||
main =
|
main =
|
||||||
getArgs >>= \case
|
getArgs >>= \case
|
||||||
["all"] -> header >> runAll solutions
|
["all"] -> header >> runAll solutions
|
||||||
_ -> header >> runAll [last (solutions)]
|
_ -> header >> runAll [last solutions]
|
||||||
300
data/03.in
Normal file
300
data/03.in
Normal file
@@ -0,0 +1,300 @@
|
|||||||
|
vGFhvGvvSdfwqhqvmCPnlFPnCNPcCFcWcr
|
||||||
|
ZbWZDMgsTHsrNNLJcJnsJl
|
||||||
|
HbBWQgZVZZBzbgZphwjqpmmVfdGmjG
|
||||||
|
vvCJLGnthChvtrvCCnRbTRqRPRBtbTRfPRRl
|
||||||
|
djZSgHNNwjqcdWlbcbfc
|
||||||
|
pFgMSfpMfzMDZFSgSjGJQQnCvMCVLnnJQLGC
|
||||||
|
gVhQWQpcWZVwwHVvFvnnnnDFdL
|
||||||
|
lzbPlztjltztzSjfGcPdTHLTHFCnnHCLndFGGd
|
||||||
|
jsNbzbczclttSlfbqlljRQMJRMMpJwRZhspZgJRM
|
||||||
|
hLJvfGcNDttSGvJtvSSJcqbqFBBWbjQqDrqbjDDjjb
|
||||||
|
lTswlzZdssgFpdPwZpMQnCjngCCjWBQBWWQqng
|
||||||
|
PRZMpzPZTdVZTfJvFvLFRctJcf
|
||||||
|
JHbQtHVHHLLbTJmmZddgdgwhllMNhhhTgg
|
||||||
|
spqpNGDjDPMhCFChMj
|
||||||
|
DBSDDGnpSDsDWqWczcvSqWvsBtJJLLZrRVZLJRbBZNVrBHrV
|
||||||
|
GwGhfhPhpHccvwSwrTsmsCjDmqTfbDqjss
|
||||||
|
tQntQcNRJMFnnVQFFctJqCsRmsTjjbDqDlTqTbWT
|
||||||
|
NZdVBZZNFzMFNNNvGprZcLGPGrrpcP
|
||||||
|
SvCPLrrlCSvZLrCPPBNPRvNLQBbpmbdggQTTfpfQgpgTqbbb
|
||||||
|
HVjHwMVwWtdMGwtwMwdhDFgbJgJqTmFMfFfmmfTTpq
|
||||||
|
whtHVcjDtHWtsWdwVGVHthDPzRrNSsCRLrLRlZNzZSNzNR
|
||||||
|
rjrlCCBtbtntwPPt
|
||||||
|
FvfJHqBJQWWgWgWLwnMwMLbzvhwTTp
|
||||||
|
WqHgWqBFgGfQgHfVdQFfVfrDllSsRSDmVmRCZZmSSSSZ
|
||||||
|
gjnppCgGHNPrqqmFnnbr
|
||||||
|
tGltVlJRtLRlrqcJcqZDqBJc
|
||||||
|
VvhLlvWltWdVltRTLTfgwSjGNHhggQNQNjps
|
||||||
|
HDWjCNfQjmwgWhcwPPVbZGcpMb
|
||||||
|
sFltFBRRSRJBSSsBlSSnRLPZbVGMVPZpMpPZpcMrFZMc
|
||||||
|
BLTBsstlqBRRBSvJJBsHdgdDNHCQHvbdCjQNNW
|
||||||
|
lRGzWLZNFwJVbVVGcJ
|
||||||
|
HqqpjPvHQnJgVgTnbdTV
|
||||||
|
rVvjBQHQrQhCrzlzWrRlDZ
|
||||||
|
jZjTZRSjZnhGZhzGnG
|
||||||
|
HbnPHrCbBDMnhcrVLWWLLWWg
|
||||||
|
MBwbCNDDptwNMttjdSnsqSRSFFdjtj
|
||||||
|
bSfvcsNsDdccHHQm
|
||||||
|
ljrlplvBhDHDHHHHJl
|
||||||
|
jgpzhrzRrvhFRFrzFnWfZtTwSWZPbbqNbsTqsW
|
||||||
|
vvCTvcDzHcgtvWjvcDcvgBCgwTdPFPpwpwmTSwwmdPwZpfZh
|
||||||
|
rNLMNVqLGNrVsRNJNsPnGnnfnpSFGdfddndd
|
||||||
|
VPQsMbVsPbzzvgCzgv
|
||||||
|
wPsrqprHQQZsChZn
|
||||||
|
cjgFLwWDlDltfLmTCnmWCnZZChCQ
|
||||||
|
FccccSLGFwjVlfVLLtgdSPSpMpBMdMBRRdHdBp
|
||||||
|
mQQcpmCCprrfLQqZVGqLGv
|
||||||
|
PtsJdsMtTTTvFqLTnnqbGZ
|
||||||
|
HjldthsHWztJzstZhBcHDDgpNpCpmrpgSD
|
||||||
|
lCmhDljDJgWggcnh
|
||||||
|
LdQrbdTDQGfGLPdqqFrHwRJcWRHgHBWHBJ
|
||||||
|
sLqsGtDqdGQfSTsqtfqqVMzjCzlvllZljNpCsMMl
|
||||||
|
CfLCZCCqqHlhSSrrtpRjpL
|
||||||
|
mWQbnQZVTWwNdwmDSbpbrFptjDrjRj
|
||||||
|
PJWVnTWPVnnclqqBsCCZHP
|
||||||
|
tqvtbNCgqJSgZgZvSncrrcGjBGhcnVcR
|
||||||
|
DswGQQQdRcjBnRDn
|
||||||
|
sMdlFMQQpfZbvlNtZGgN
|
||||||
|
RMlPllHtrlrlcZLsZfLcfwdDGD
|
||||||
|
QppnQhTBgwQDJsGzLQ
|
||||||
|
gTjnmjvphDSNMbtMbtMRHNVr
|
||||||
|
RHHcChrVVChCWQmRnMZmnmbTbGmFnqTT
|
||||||
|
gpzpfpszDwvDDNdwjdstnSMMHGMqvZnFTTZqbq
|
||||||
|
DsDdpfppwHsgJdjzfdDjdssLPlRccPQQrJcchPQWWQRhlQcr
|
||||||
|
rsrjQjnRnQZZqMmMMVqs
|
||||||
|
WTSTdvJLvTGJTGCMGvzBBpVVqqFVzBzVmf
|
||||||
|
tTSJhGLJbJhLJRRbHPQbnHHMrl
|
||||||
|
GGgMgBJHWHhLWMhWhgfrhgWLzmsmlzTtzHmsmlszRtszRVlT
|
||||||
|
bvScppfcQfcQSFCQpnPqwwTdRTvmzVssvswtddsv
|
||||||
|
ZDpqnPbQbPPnQbFbfSPSqbQJhGrjgMZBhWLrLrBBBBJWhg
|
||||||
|
hQCCGCNhDmGFJsTt
|
||||||
|
fcggBBpvBSrtsRTpRmpD
|
||||||
|
wflWlBlfnvfWWgMNPPLhPnzhPmLQ
|
||||||
|
pcGGTvVpcQLLzSPPPpVBVQwngNqgsJqgJgqSngsJMqJg
|
||||||
|
RZDFGhtCDGmWfWsNdwJhnMgwswqJ
|
||||||
|
ZCGjRGjZllFGHvvcTPjPTQpB
|
||||||
|
FDVsWrFZnnnfNRJdgBBBMLsJLH
|
||||||
|
wcThcTphvCThwTlblpzwGlpLRgHJWLgHLBHdHWJLBLWR
|
||||||
|
mwcbPmClwlzlwvvbTmWbQSjZmZSrDnSNVZfVFnZf
|
||||||
|
tMlttlFRSrcSFcwQSRwSzrMMPPGGPGLWgNfTNTcLPNPGBPPG
|
||||||
|
pbZVCDTqnCjVDHnHVnhBPBBbhBhbhgLgmWLh
|
||||||
|
qZCJZJqqjjCVvvRQltlzTrJtMMMw
|
||||||
|
QvvdBDdMbdFFJrMMjjmjCfCntC
|
||||||
|
lHTPsNLPcfVZLnfj
|
||||||
|
GgsWpHPpTPWpNsGvgdnDbQRQFRbdQg
|
||||||
|
jPNwllsVZjhslSjwGShZMdJDmmdmWLtMDDPHMPFd
|
||||||
|
QbvpDrbBrtMbbHJmcH
|
||||||
|
vznvzBRpBprQBqQZjNswwZDnSlGjZl
|
||||||
|
PdNTzLQPLrVMzGcMtt
|
||||||
|
FsSvDrvmrwDggHGwgV
|
||||||
|
vlpZpZmfnmFTlTWJWdbrdh
|
||||||
|
mZmnggMTSJrrmnrbmTbngJMtwPvwzzRvPGhQdGZPGPLvGvRd
|
||||||
|
FFVBNHVlFlDfCsWwLwPzzhGPCvzhQv
|
||||||
|
qBHLsDcfqFfDDfsFLNcNNBFsrgpMpnJSbnmTnrtmbMSqnpnr
|
||||||
|
qjBNwBPNPspqddssbsTsMDhTDrThQb
|
||||||
|
gvzZSZzFbgHnrHmn
|
||||||
|
fcvfZcRSZFGfZcvFbGttcPfpVjWVwqBqdwNdwNNpqV
|
||||||
|
RrTmtTrqznrnRCSqJrWlWDbhWVnfVDVWdclV
|
||||||
|
QBBgHQGvHHQswLHQQLGLHdLhfhlZZFlsscVDZfWfDhVlZZ
|
||||||
|
dLBMPpGPjLHPHPBHjjgQjHQztSJRztmrNCSCmSpmprrrrz
|
||||||
|
HHWJgjjsJrPBWBjgWgDvbbvtbNDNVtttMPPp
|
||||||
|
SnLTlhhNSntRVVLFVbbb
|
||||||
|
ChqdcNTNqqJCrQrQrrBC
|
||||||
|
BvfLLngFLDrrlDFDDnGmGlmzqzdGqMMWWwWW
|
||||||
|
RVsPbsbVZbjctccCcsCSPmdNqMqMWddwqVzhhNHwHd
|
||||||
|
tcsjPZRctZTSbbtSbtsSjZznnJfJBrfJgLvJJDDBvpTrgp
|
||||||
|
LJJsNdtJQtbWRJQttjGhjVnjcnzcsczGqj
|
||||||
|
MDPPlvCwrTlZfMMvTlPTdVcVhVVjchSBrjccSnnq
|
||||||
|
lgZCvTTZfMgHLptdRgmR
|
||||||
|
gCDrJRNgJDZRCwMgqGbtVVjTjlFbbTtR
|
||||||
|
mccnfcnSQScdvdcQQQpWdnWSjPqTbFFlbPqbPVGNjTPjtN
|
||||||
|
NnzmpWmBBzzpzDgwhDghrZrw
|
||||||
|
wcbVDBQwVBFQLFQDQcqQcLcJfpHJjmljGgMHfcfgGgjf
|
||||||
|
PtnWMtSnlgJmWWmm
|
||||||
|
nThPtRnzntstvrtRPqDFLMLdDwBBFLQDBT
|
||||||
|
zshqnVqTwqHqZQgZDSZjpFjFFF
|
||||||
|
PsBRvttdcgFFBSmc
|
||||||
|
GlPsbLtrvrrrtJlCTnVTlwwfnhwVqH
|
||||||
|
CvVVnFwWZnZwJZMNlCMNMpbMrrQG
|
||||||
|
cpghqzqqtzbGMjTNclGN
|
||||||
|
PqLBsgqBsSfBffShVmvRVwWsFpwZVpsn
|
||||||
|
LzsLSScvscqNdGdgddQjCDbzhpCDbRbhDpDDwDwt
|
||||||
|
ZlMBBBnlMFVFHVMJflJjJBfhRnCbCDpRttRPDCbWpCRbpW
|
||||||
|
mlrFmJrmscNGmsjm
|
||||||
|
FqQjLRjfvTFvlPHHNPMBDDNDPR
|
||||||
|
chWptpcWTzBPMsMMMBHW
|
||||||
|
zcJghwJZpZcgnctccdzzpGQrbQbblFFlTCCFTbdCFCFq
|
||||||
|
QcwNpCcQzpwtCGPPPnrGrfHfvN
|
||||||
|
FgjhhhjMVFVjqRRqDBVBqvMZvdrHnPZWZvsnZHdWnv
|
||||||
|
ShBFhDVghhTBgBBFRRgRCmCPCcpPbwCmLTcCmbpb
|
||||||
|
ZzlzsBzZnWnsBhFRvfvvLfWqfvMv
|
||||||
|
GgQGjjddHHPwpHpTGjPdHMvtvwJqLtJRFlRFRqMwLc
|
||||||
|
dgbbdjpGGgTHGGgQgdpmpgblrBrhrhCBSSznChsVhBsmNB
|
||||||
|
PhSwPdnpsmSWWcjjDFNqnc
|
||||||
|
GJGCTLbTZTrlfflVLFchHDHHDFcVVN
|
||||||
|
RhlhrllQZhCsPvRBvMtSvw
|
||||||
|
GVgnrgTWGVGjLVjWSpvvNmPTmpQmzvhf
|
||||||
|
tBbBDsFtszzSSbPZbh
|
||||||
|
BqlqdcqSJtFMdMjWrnGCWRrWGG
|
||||||
|
sJVJsQhMhPPSQMwdHRmmsmmwRmsr
|
||||||
|
zLFjLDTBFNWWwrqrffldlRdFRq
|
||||||
|
BLjzjTpzLpzWGTbQpMJvVMQwQhhMQM
|
||||||
|
RqSztDRhJDLmRMLlfvsP
|
||||||
|
dMdMMHZCsnbdvmbP
|
||||||
|
VHcZVVcZTwTQpgHQcgFMFBpDDzBqqqDhqJSjSjJjSD
|
||||||
|
rdMnMGjdHhfnjqWWDJPpGWPtvW
|
||||||
|
PTBSQSSzZSBSCzQFFSlZTFSvcZpWWcJvtJppvZpLLcDVcv
|
||||||
|
sgQCsBmmlFCPFFzTgTBgdNnrNndnMrrrfbrNjf
|
||||||
|
bpZdggTjHbgLglpHjldvHpjdhTVzmhzzzFPzmhFsFQSFnhhN
|
||||||
|
rPCDBcCCMPGcWDNNWQzQQSNQnNzQ
|
||||||
|
fCCJtDtGGGfGBtGqBrrcfRBcvPwpLgdZZvHdljvqpvdwbpvl
|
||||||
|
qpmsNldnlHlCqQlHsHNHwJpJMtwvvvjMvfWjpDtt
|
||||||
|
TccVBScrzBzzTGPbVTPQhWjfMjwwRtJtjMtWDWWfDS
|
||||||
|
FQFbzBGczGBFLnFmmqsCLg
|
||||||
|
qpblblvpvJzStJDrhrnGrdhDfFqf
|
||||||
|
ggNQNwBgmTcgCBTBTQQjNfDCnZRRRrRGCnrFfdnhrC
|
||||||
|
mjVFHQTHNjTwcmpzJzHltltbSssS
|
||||||
|
WChWmdcmzndhFcZrrbvrVMVssj
|
||||||
|
NQLDlDplpSJGpLfRRMZVBBGjVsGbbjbBZsGv
|
||||||
|
QNDfNqlpLgSfNfNgNfpgpqwndwWwnCCnnTFMdHndzn
|
||||||
|
ZGRPTngTZMSGMGnhSgRjQHsPbqjmsWHQCQWbNN
|
||||||
|
BFLLfpzVDBfDdlfQcsbVcNmQsqqbcC
|
||||||
|
zFvdplLDLtzFmrrwMMtTrShZ
|
||||||
|
nTdmnVCGqTsSBTqv
|
||||||
|
HlMPwMlHfPSfBBmFBfSL
|
||||||
|
trHHwRHRwMHPMJQJHnDhbdRhdpCZmChNnd
|
||||||
|
lwHWjzplvHqWHGsMLsLwLfgdfLdg
|
||||||
|
tPJNPQmQmSGcTtFmctGmSCBgsBBRbLBRVdLVLCBBLgVf
|
||||||
|
FPtTPQNPrPPQctTcNPSQJJPDjlzplnGDDjWWplWHhGvpnr
|
||||||
|
jwvvDbvsRsrrjrfvfrrZsPpCpmPJJPqlqWmzRJRTqq
|
||||||
|
HdLttdSQHdLHMMtNdLMSTtHpCmPplWhCzmzmPWlJhlNplP
|
||||||
|
BTSLtLLQtnVZDnffbwfw
|
||||||
|
snvQdrtrQprWpgmGLp
|
||||||
|
FhzwlwHccBcljFBSDmHmLpgRmPDCffWL
|
||||||
|
zFhllqjczzwJqqSqlZMsvJgVNMTbssVNnQbb
|
||||||
|
dLZHrWjWPFZWZnPjZttjddFnMDVMGJMQqvMVGVRVpjVpGVvv
|
||||||
|
zhzTwTlfTwCsShSgNhfzsQQqvMQStQMDGJJGvGQVvq
|
||||||
|
TTwCBfsfBwhzwTBCzlmHZdLmBBbtLnLbFnnF
|
||||||
|
BhBRLFmlBlmhgShHmhSlZlFgvbQNwvcsvMCcsQCwNQvNMsBw
|
||||||
|
ttWddDjrfjDcssscDbvH
|
||||||
|
jfjfPWdzdfjdnWpjtrzqnhmJGJFhSJRHSmSmlqlHmq
|
||||||
|
QvJTgvsvghHRHHNbZvNZTRSzBBCLrDqzrfDDtJSqSLBC
|
||||||
|
cPPwdcFFPDwfFrBrFfFfrC
|
||||||
|
nppwdplpRvllsgDH
|
||||||
|
BGLLWLLwHVZwHnNhwsMsrqMqhh
|
||||||
|
STlTpDpmjzmjjjgccqdsbNbBhlNnNMhsqs
|
||||||
|
pjmgjfSDSzmSgFzRZQfRRZLBVLVtZZ
|
||||||
|
WHjddztMtVLNNFFTmbFPFPRw
|
||||||
|
bJnvpQfqccQJZfpcbvCphcFGDPFGRwDGDDGwGsmPFnPF
|
||||||
|
rvffQJZJqrpZCJZJQrQpvBvStlSWSzVSWBbzBLzjtjWWWj
|
||||||
|
SJFMSMGSDLTsFgHvHL
|
||||||
|
mNzRrRRzjzqqgPHvLTHjlvWg
|
||||||
|
ZLbRpRnRnCrbmnmrRRNnwbGfMwDwfDDdSVMdVJdd
|
||||||
|
nsqTbhcDssPsPWsnchPJMSTSMmJMwTSTCJJfJw
|
||||||
|
DHvFvvdHpvpGFHDMVVJVplCCVpggCl
|
||||||
|
RdQjtvHtDQNGsZqzcqPqbNcq
|
||||||
|
GFzRjczzQJnLjJvvTj
|
||||||
|
mSfHrNHDzHDrDSSSBvTZLTNqWJWBWLlv
|
||||||
|
PfgCmfPzDVrtHsddVMsRFcVFQM
|
||||||
|
sfBgfBfBsHBHFGhsqfjgQZtQQMdZgbZQptbM
|
||||||
|
rNLRSzRTrrvvLSTWGpjpNZdQPtGtMdNM
|
||||||
|
wvSWLwzTGTCcwwwJwvwcrcRcVfFBqhhVhDqhBllBfFqBCDCs
|
||||||
|
LbTpDTcMTSzzMLhScnDnSppNQwVNZFBVnFsrwQQZrQrQrN
|
||||||
|
tJtJCRlGWljGWCtjJZVPsJBsVwQmrQNN
|
||||||
|
fvHRftqjGfWGwtfGqvLTzDTzzzchSbMDTd
|
||||||
|
JJhWZlhqLDHtBDrqrB
|
||||||
|
bwwmfrSmbmFjVSFQwSdpDvGdpPnRvDtHpGtGPG
|
||||||
|
VgFfcSQfFgmLLrNThllTZc
|
||||||
|
QmfvrpnvrrJGnBSCFTBMSWFS
|
||||||
|
NVMggbVPzCTgDFDD
|
||||||
|
NRqHRZjVRZdRVdZwNPrMrchGhGpcGfvhQlHJ
|
||||||
|
nlBdCldndlZTttSSBBccPfGWLLHcTTcWPbbW
|
||||||
|
jpsFzFmzDzNzDGChGcGGmPQHQf
|
||||||
|
CNzqvvVJNFqvgRtlqRtdnwSZ
|
||||||
|
MJtDbNHDDpmVPJVzzjLm
|
||||||
|
RslhvlfRTWvWWRwfllSZngmggznjSPznLjmSnz
|
||||||
|
TlhffRwWQhChDqbBQLFHqNrb
|
||||||
|
HWnmSbzflWltlzLfWWDzjMBvCjjCTCgcMvzBBB
|
||||||
|
qRRRZJwhZFGdRNfghVjMVVgfcghC
|
||||||
|
QFFqwNNNwdNZZpqqZfnDSHmmlDLtWtHWlQmD
|
||||||
|
JrFdNTTLRBTJrFVrBNdVLFBdlHbzQQsQzbPJtpbtltWsHbQw
|
||||||
|
gZffDfMlCfjCSqMcpHPWHszstzHjQwpb
|
||||||
|
GMnvfGlfvSqvcMMDgDDcfnqSVFRdmTmVdNBTdmRmBFVnLLBT
|
||||||
|
ZvRHtDcZntLZssMssQBrMdnC
|
||||||
|
jglqlVdlbqgVWjJMbrrBCpmQBBfrpm
|
||||||
|
GqVVPPjPNjFVllNjJjFDvzTLZRvcLRLvTGdGDv
|
||||||
|
fDVzvVfzzZPMsMbb
|
||||||
|
LHtBwLBdhFgdHLLthRwFGGMsmrHMmmbZSmqbMGGG
|
||||||
|
bblRwbTRlllfVQnCQn
|
||||||
|
fVZzjRzpzpVCRPZhVWQvvLsWWWFQlmjWmG
|
||||||
|
JDHgJdtwbZqJqsWBBDLlQlvLms
|
||||||
|
cHHtdbqwrqbbtSbTgSTcVCMRZnRRVNhVPNMPpfMc
|
||||||
|
fCMPBBdpMpsqMssQccnV
|
||||||
|
TlwGWDjDZHLjZHHlLGmnlnNcRllsJcqtsJRV
|
||||||
|
ZHhZHThLLrGwjDDjLwGWWWSjPpbpzrvBFBFdBBbqvCbpFfpg
|
||||||
|
bvDfDPtCVfFFVdWWpmLRmzWzzdBW
|
||||||
|
jgZTghhjrGrsswrsghHrlgTGzSRmMLwpJMSMzWLLWRzpRRSc
|
||||||
|
lpjTpGHlpsNGTHllHrCFnDNPtVnvfQtQtQNP
|
||||||
|
BwlQcwZBwwwQNqJTrrsRGCDTNt
|
||||||
|
bMpVPSfRvCbCtTqsCs
|
||||||
|
dPSRfRpPPjjmLMgZBZBLZZwFQnZn
|
||||||
|
TsVfggTqVnsLVTdTpmDdRhwPRtPRDRwD
|
||||||
|
ljHBSWZvvFWvBFPppnQPwnpmzR
|
||||||
|
MSHSjbBclBSjccLJgqgnLVqTbsTT
|
||||||
|
zncfVgRzVJgnTfVqNHvZJZNJNMpHbdvH
|
||||||
|
PCBpsLjPPmMGdHNdHBHZ
|
||||||
|
jSLlrhLPDWLrPrDCLPCfnpzcVRFcRTnlVncntT
|
||||||
|
ccvSgjHtRjcjSvjvSrBjzSHHwnJPbgwPPZVVVZnPpZlpwnlT
|
||||||
|
ffqNqGGsGWqLTNqZwdndPnnJJpZVJW
|
||||||
|
sNmqhsCMQsMTmjrcmrHrRj
|
||||||
|
gWWWzNVJDwDzVWVDGbGNnhTnHLsmhmhfsQTNSmHd
|
||||||
|
vtMPZvrZvqtqBHljrqSnnmTfLfdnQsjhjmhL
|
||||||
|
MMPZPBqZCrBtvZcrBlDbGbbbzHJCbbRwgwDz
|
||||||
|
hGSRhsMswhcNNGwhwncMnCqCJNrHJPJJrJtCJdqHJm
|
||||||
|
BgVTzWBdTfCmfCJH
|
||||||
|
dlbVFvvWVZhSRQDMnlhc
|
||||||
|
WfpzBZmgJlQVGvWF
|
||||||
|
wHSbrHwmccnrmrHsClGqFGbQjQjjQJQQGv
|
||||||
|
SHPwwsRcrrNtrNSsphmZLzpfzhghZPdD
|
||||||
|
DFDPRpmgbPQtmgBBQDDNJTMMBZsqsZGqGZTGCGSqWG
|
||||||
|
fVvVVLcJVzlvzhqfSTCsZsMGMHqq
|
||||||
|
zJdrrdnzcLlwczwbQmQngRDQPbtDpQ
|
||||||
|
HDZZrpFqwRrQfBqhjjlVlQ
|
||||||
|
czTgvvWPNgPGcTlsQflCVshClC
|
||||||
|
PgNvtSJNvGVMMzNzgGvPGGLHFDdFdmZSZRdDdRrmpFwL
|
||||||
|
SVHNVFVPBHJqHhgFCgzLmCwppm
|
||||||
|
DvDdsGZljDlfdZnjnnZGMzLpRgLfMCLmzfPLhmgp
|
||||||
|
jZDZlrvrZTrTrTQrDsjslHNJqtWbWHbqbPBWNVQWBJ
|
||||||
|
NmGGBdWWJDJTTZHm
|
||||||
|
hFVhcqFjncpcppSjqfppqDvzDDDbbDZvDZZbHfJgvJ
|
||||||
|
jrPqnnHnqSPwPGWPdWst
|
||||||
|
BfhbwMwbbPbHPPPlrdJjrlMJLrJVTd
|
||||||
|
pnQnGnWDjnJdlJCh
|
||||||
|
qshsWvpttzNNQDtzRRPvwfcPHBBBHwbw
|
||||||
|
SHzGRQjhwwhGzjjwRjfBqpqbNCqNnnqqQqPlQC
|
||||||
|
TZtgLmZgVmgdFgmZtdrbNqnqlNlpblnlrnBd
|
||||||
|
DvgmvvZgmWJJjwHHhJSzps
|
||||||
|
JjlrlJjPJgDjJjJnDRDjNwGGqMvSddvPvwQddqSVvq
|
||||||
|
SLpphFLhFZhWLzvswwWqsqVVQWdv
|
||||||
|
FSHtTLZpfzRDDrJgRNjT
|
||||||
|
wjCMvrMlqqWHvWqddrHqgnBNhcffthhVLtpgLBnw
|
||||||
|
GbQFZzZZphnpgNZV
|
||||||
|
FhFzRTDRPzsRQGQGTFlllrJHjdsJlHMqjjHr
|
||||||
|
LqDcTbmJcqSJSTmnrTcmJrfffplfjZsGZfGGZfQLdplj
|
||||||
|
hWddgBvzWFZfPsQlGh
|
||||||
|
RBWBRCdHtgHttVVzHBVNNNDwSTDcSSSbScDDwbwbnmRS
|
||||||
|
FFPzwlZVVrzFFlFLVlllZdHCHPQMnJQQbhhChdhCbb
|
||||||
|
BRRqGBgRfqvgvBDDDTRgghNCMMTQNNbVJMNJJdbbdT
|
||||||
|
DfpgjGfsRWrFVzwLcs
|
||||||
|
PMTSdSmFjhFpNTqvppvRBrRBrDqB
|
||||||
|
HnZZznJbzGZGlZtZWHlJGcGcwMvQBsrwRDQvcDgrgDgrqRvq
|
||||||
|
HGlGfnJZfMMCfNhm
|
||||||
|
nRssqlqVRppVwdMMQwFgtRFz
|
||||||
|
smTvLLTvvNLtwMMQNg
|
||||||
|
CmPGBvZGWvBSGGDmTZjZlhpJcpHDJsbDnlrrprpl
|
||||||
|
djcQGNQqdGdGqMCgndwgCLDMgW
|
||||||
|
nvBvHpBppnvPPnJTBWLJVMwVfWJfCbfWgW
|
||||||
|
hsHHpBsvRTHpsPszTBTTsRTslGqGqlcqlScnqmhZmmZSZSjl
|
||||||
|
DddBHCmfWCBTDBHTHfMpzhzpJJMJsFrGrz
|
||||||
|
tPVPmbnttjPnZvSvSbnmZPZPNpNGMpJNzzNrGJpvhsshMpFs
|
||||||
|
mwnZcbmmStbVtVjbZVlcLTBlcLCRHRDWCWWW
|
||||||
34
src/Days/D03.hs
Normal file
34
src/Days/D03.hs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{-# LANGUAGE ImportQualifiedPost #-}
|
||||||
|
|
||||||
|
module Days.D03 where
|
||||||
|
|
||||||
|
import Data.Char (ord)
|
||||||
|
import Data.List (intersect)
|
||||||
|
import Data.List.Extra (chunksOf)
|
||||||
|
import Lib (Day (StringDay), definitive)
|
||||||
|
|
||||||
|
type Intermediate = [String]
|
||||||
|
|
||||||
|
halves :: [a] -> ([a], [a])
|
||||||
|
halves l = splitAt (length l `div` 2) l
|
||||||
|
|
||||||
|
priority :: Char -> Int
|
||||||
|
priority c =
|
||||||
|
let o = ord c
|
||||||
|
in if o < ord 'a'
|
||||||
|
then o - ord 'A' + 26 + 1
|
||||||
|
else o - ord 'a' + 1
|
||||||
|
|
||||||
|
part1 :: [String] -> Int
|
||||||
|
part1 = sum . map (priority . head . uncurry intersect . halves)
|
||||||
|
|
||||||
|
part2 :: [String] -> Int
|
||||||
|
part2 = sum . map (priority . head . foldl1 intersect) . chunksOf 3
|
||||||
|
|
||||||
|
day :: Day
|
||||||
|
day =
|
||||||
|
StringDay
|
||||||
|
( \s ->
|
||||||
|
let l = lines s
|
||||||
|
in Right (definitive $ part1 l, definitive $ part2 l)
|
||||||
|
)
|
||||||
@@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
module Lib where
|
module Lib where
|
||||||
|
|
||||||
import Util (both, dupe)
|
import Util (both)
|
||||||
|
|
||||||
import Data.Function ((&))
|
import Data.Function ((&))
|
||||||
import Data.Text qualified as T
|
import Data.Text qualified as T
|
||||||
import Data.Text.IO qualified as T
|
import Data.Text.IO qualified as T
|
||||||
import Data.Void (Void)
|
import Data.Void (Void)
|
||||||
import Text.Megaparsec qualified as M (Parsec, eof, errorBundlePretty, parse, sepEndBy1)
|
import Text.Megaparsec qualified as M (Parsec, eof, errorBundlePretty, parse)
|
||||||
|
|
||||||
data Answer where
|
data Answer where
|
||||||
Answer :: (Show a) => a -> Answer
|
Answer :: (Show a) => a -> Answer
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
module Print where
|
module Print where
|
||||||
|
|
||||||
import Data.Maybe (fromMaybe)
|
import Lib (DayResult)
|
||||||
import Lib (DayResult, PuzzleError (..))
|
|
||||||
import Text.Printf (printf)
|
import Text.Printf (printf)
|
||||||
|
|
||||||
printDR :: Int -> DayResult -> IO ()
|
printDR :: Int -> DayResult -> IO ()
|
||||||
|
|||||||
@@ -5,6 +5,3 @@ dupe a = (a, a)
|
|||||||
|
|
||||||
both :: (a -> b) -> (a, a) -> (b, b)
|
both :: (a -> b) -> (a, a) -> (b, b)
|
||||||
both f ~(x, y) = (f x, f y)
|
both f ~(x, y) = (f x, f y)
|
||||||
|
|
||||||
mapSnd :: (b -> c) -> (a, b) -> (a, c)
|
|
||||||
mapSnd f (a, b) = (a, f b)
|
|
||||||
Reference in New Issue
Block a user