Compare commits
9 Commits
6b3fcfd9cd
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
f8f82e80b2 | ||
|
76514a78d5 | ||
|
8ee7085510 | ||
|
5697d36ff1 | ||
|
5930deb3c5 | ||
|
9eadc6a3c1 | ||
|
61b961dc12 | ||
|
c2954ea720 | ||
|
ca600eb280 |
138
data/day_10.txt
Normal file
138
data/day_10.txt
Normal file
@@ -0,0 +1,138 @@
|
||||
noop
|
||||
noop
|
||||
addx 5
|
||||
addx 29
|
||||
addx -28
|
||||
addx 5
|
||||
addx -1
|
||||
noop
|
||||
noop
|
||||
addx 5
|
||||
addx 12
|
||||
addx -6
|
||||
noop
|
||||
addx 4
|
||||
addx -1
|
||||
addx 1
|
||||
addx 5
|
||||
addx -31
|
||||
addx 32
|
||||
addx 4
|
||||
addx 1
|
||||
noop
|
||||
addx -38
|
||||
addx 5
|
||||
addx 2
|
||||
addx 3
|
||||
addx -2
|
||||
addx 2
|
||||
noop
|
||||
addx 3
|
||||
addx 2
|
||||
addx 5
|
||||
addx 2
|
||||
addx 3
|
||||
noop
|
||||
addx 2
|
||||
addx 3
|
||||
noop
|
||||
addx 2
|
||||
addx -32
|
||||
addx 33
|
||||
addx -20
|
||||
addx 27
|
||||
addx -39
|
||||
addx 1
|
||||
noop
|
||||
addx 5
|
||||
addx 3
|
||||
noop
|
||||
addx 2
|
||||
addx 5
|
||||
noop
|
||||
noop
|
||||
addx -2
|
||||
addx 5
|
||||
addx 2
|
||||
addx -16
|
||||
addx 21
|
||||
addx -1
|
||||
addx 1
|
||||
noop
|
||||
addx 3
|
||||
addx 5
|
||||
addx -22
|
||||
addx 26
|
||||
addx -39
|
||||
noop
|
||||
addx 5
|
||||
addx -2
|
||||
addx 2
|
||||
addx 5
|
||||
addx 2
|
||||
addx 23
|
||||
noop
|
||||
addx -18
|
||||
addx 1
|
||||
noop
|
||||
noop
|
||||
addx 2
|
||||
noop
|
||||
noop
|
||||
addx 7
|
||||
addx 3
|
||||
noop
|
||||
addx 2
|
||||
addx -27
|
||||
addx 28
|
||||
addx 5
|
||||
addx -11
|
||||
addx -27
|
||||
noop
|
||||
noop
|
||||
addx 3
|
||||
addx 2
|
||||
addx 5
|
||||
addx 2
|
||||
addx 27
|
||||
addx -26
|
||||
addx 2
|
||||
addx 5
|
||||
addx 2
|
||||
addx 4
|
||||
addx -3
|
||||
addx 2
|
||||
addx 5
|
||||
addx 2
|
||||
addx 3
|
||||
addx -2
|
||||
addx 2
|
||||
noop
|
||||
addx -33
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
noop
|
||||
addx 31
|
||||
addx -26
|
||||
addx 6
|
||||
noop
|
||||
noop
|
||||
addx -1
|
||||
noop
|
||||
addx 3
|
||||
addx 5
|
||||
addx 3
|
||||
noop
|
||||
addx -1
|
||||
addx 5
|
||||
addx 1
|
||||
addx -12
|
||||
addx 17
|
||||
addx -1
|
||||
addx 5
|
||||
noop
|
||||
noop
|
||||
addx 1
|
||||
noop
|
||||
noop
|
55
data/day_11.txt
Normal file
55
data/day_11.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
Monkey 0:
|
||||
Starting items: 71, 56, 50, 73
|
||||
Operation: new = old * 11
|
||||
Test: divisible by 13
|
||||
If true: throw to monkey 1
|
||||
If false: throw to monkey 7
|
||||
|
||||
Monkey 1:
|
||||
Starting items: 70, 89, 82
|
||||
Operation: new = old + 1
|
||||
Test: divisible by 7
|
||||
If true: throw to monkey 3
|
||||
If false: throw to monkey 6
|
||||
|
||||
Monkey 2:
|
||||
Starting items: 52, 95
|
||||
Operation: new = old * old
|
||||
Test: divisible by 3
|
||||
If true: throw to monkey 5
|
||||
If false: throw to monkey 4
|
||||
|
||||
Monkey 3:
|
||||
Starting items: 94, 64, 69, 87, 70
|
||||
Operation: new = old + 2
|
||||
Test: divisible by 19
|
||||
If true: throw to monkey 2
|
||||
If false: throw to monkey 6
|
||||
|
||||
Monkey 4:
|
||||
Starting items: 98, 72, 98, 53, 97, 51
|
||||
Operation: new = old + 6
|
||||
Test: divisible by 5
|
||||
If true: throw to monkey 0
|
||||
If false: throw to monkey 5
|
||||
|
||||
Monkey 5:
|
||||
Starting items: 79
|
||||
Operation: new = old + 7
|
||||
Test: divisible by 2
|
||||
If true: throw to monkey 7
|
||||
If false: throw to monkey 0
|
||||
|
||||
Monkey 6:
|
||||
Starting items: 77, 55, 63, 93, 66, 90, 88, 71
|
||||
Operation: new = old * 7
|
||||
Test: divisible by 11
|
||||
If true: throw to monkey 2
|
||||
If false: throw to monkey 4
|
||||
|
||||
Monkey 7:
|
||||
Starting items: 54, 97, 87, 70, 59, 82, 59
|
||||
Operation: new = old + 8
|
||||
Test: divisible by 17
|
||||
If true: throw to monkey 1
|
||||
If false: throw to monkey 3
|
41
data/day_12.txt
Normal file
41
data/day_12.txt
Normal file
@@ -0,0 +1,41 @@
|
||||
abaaaaacccccccccccccccccccccccccccccccccccccccaaaaaaaccccaaaaaaaaaaaaaaaaacccccaaaaaacccccccccccccccccccccccaaaaaaaaccccccccccccccccccccccccccccccccaaaaaa
|
||||
abaaaaaacccaaaacccccccccccccccccccccccaccccccccaaaaaaaaccaaaaaaaaaaaaaaaaccccccaaaaaacccccccccccccccccccccccccaaaaccccccccccccccccccccccccccccccccccaaaaaa
|
||||
abaaaaaacccaaaacccccccccccccccccaaaaaaaacccccccaaaaaaaaacaaaaaaaaaaaaacccccccccaaaaacccccccccccccccccccccccccaaaaacccccccccccccccccccaaaccccccccccccaaaaaa
|
||||
abaaacaccccaaaaccccccccccccccccccaaaaaacccccccccaaaaaaaccccaaaaaaaaaaacccccccccaaaaacccccccccccccccccccccccccaacaaaccccccccccccccccccaaacccccccccccccccaaa
|
||||
abaaacccccccaaacccccccccccaacccccaaaaaaccccccccaaaaaaccccccaacaaaaaaaacccccccccccccccccccccccaaccccccccccccccacccaaaaacccccccccaaccccaaacccccccccccccccaaa
|
||||
abccccccccccccccccccccccccaaaaccaaaaaaaacccccccaaaaaaaccccccccaaaaaaaaaccccccccccaacccccccccaaaccccccccccccccccccacaaacccccccccaaaaccaaacccccccccccccccaac
|
||||
abccccccccccccccccccccccaaaaaacaaaaaaaaaaccccccaaccaaaaacccccaaaaccaaaaccccccccccaaacaacccccaaacaaacccaaccccccccaaaaaaaacccccccaaaaakkkkkkcccccccccccccccc
|
||||
abccccccccccccccccccccccaaaaaccaaaaaaaaaacccccccccccaaaaaaccccacccaaaaaccccccccccaaaaaaccaaaaaaaaaaaaaaaccccccccaaaaaaaaccccccccaaajkkkkkkkaccccccaacccccc
|
||||
abcccccccccccccccccccccccaaaaacacacaaaccccccccccccccaaaaaaccccccccaaaacccccccccaaaaaaacccaaaaaaaaaaaaaaaaaccccccccaaaaaccccccccccjjjkkkkkkkkccaaaaaacccccc
|
||||
abcccccccccccccccccccccccaacaacccccaaacccaccccccccccaaaaaaccccccccaaaacccccccccaaaaaaacccccaaaaaacaaaaaaaacccccccaaaaacccccccjjjjjjjooopppkkkcaaaaaaaccccc
|
||||
abcccccccccccccccccaacaacccccccccccaaaaaaacccccccccccaaaaacccccccccccccccccccccccaaaaaaccccaaaaaaccaaaaaaacccccccaaaaaacciijjjjjjjjoooopppkkkcaaaaaaaacccc
|
||||
abccccccccccaaaccccaaaaacccccccccccccaaaaacccccccccccaaaaccccccccccccccccccccccccaacaaaccccaaaaaaacaaaaacccccccccaccaaaciiiijjjjjjoooopppppkllcaaaaaaacccc
|
||||
abccaaccccccaaaaacaaaaacccccccccccccaaaaaacccccccccccccccccccccccccccccccccccccccaacccccccaaaacaaaaaaaaacccaaccccaaaaaciiiiinoooooooouuuupplllaaaaaacccccc
|
||||
abcaaacccccaaaaaacaaaaaacccccccccccaaaaaaaaccccccccaacaccccccccccccccccccccccccccccccccccccaccccccccccaaccaaaccccaaaaaciiinnnooooooouuuuuppplllaaacacccccc
|
||||
abaaaaaacccaaaaaacccaaaacccccccccccaaaaaaaaccccccccaaaaccccccccccccccccccccccccccccccccccccccccccccccccaaaaacaacaaaaaaiiinnnnntttoouuuuuupppllllcccccccccc
|
||||
abaaaaaaccccaaaaacccaaccccccccccacccccaaccccccccccaaaaaccccccccccccccccccccccccccccccccccccccccccccccccaaaaaaaacaaaaaaiiinnnnttttuuuuxxuuupppllllccccccccc
|
||||
abaaaaacccccaacaaccccccccccccccaaaccccaacccccaacccaaaaaacccccccccccccccccccccccccccccccccccccccccccccccccaaaaaccaaaaaaiiinnnttttxxuuxxyyuuppppllllcccccccc
|
||||
abaaaacccccccccccccccccccccaaacaaaccccccaaacaaaaccacaaaacccccccccccccccccccccccccccccccccccaacccccccccccaaaaaccccaaaccciinnntttxxxxxxxyyvvvqqqqqlllccccccc
|
||||
abaaaaaccccccccccccccccccccaaaaaaaaaacccaaaaaaacccccaaccccccccccccccccccccccccccccccccccccaaacccccccccccaacaaaccccccccciiinntttxxxxxxxyyvvvvvqqqqljjcccccc
|
||||
abccaaaccaccccccccaaacccccccaaaaaaaaaccccaaaaaacccccccccccccccccccccccccccccccaacccccccaaaaacaaccccccccccccaacccccccccchhinnnttxxxxxxyyyyyvvvvqqqjjjcccccc
|
||||
SbccccaaaacccccccaaaaaacccccccaaaaaccccccaaaaaaaaccccccccccccccccccccaaccccccaaaaccccccaaaaaaaacccccccccccccccccccccccchhhnnntttxxxxEzyyyyyvvvqqqjjjcccccc
|
||||
abccccaaaacccccccaaaaaaccccccaaaaaacccccaaaaaaaaaacccccccccccccccccccaaccccccaaaaccccccccaaaaacccccccccccccccccccccccccchhhnntttxxxyyyyyyyvvvvqqqjjjcccccc
|
||||
abcccaaaaaaccccccaaaaaacccccaaaaaaaccccaaaaaaaaaacccccccccccccccccaaaaaaaacccaaaacccccccaaaaaccccccccccccccccccccccccccchhmmmttxxxyyyyyyvvvvvqqqjjjdcccccc
|
||||
abcccaaaaaacccccccaaaaacccccaaacaaacaaaaaaaaaaccccccccccccaaacccccaaaaaaaaccccccccccccccaacaaacccccccaacaaacccccccccccchhhmmmtswwwyyyyyyvvvqqqqjjjjdddcccc
|
||||
abcccccaacccccccccaacaacccccccccccacaaaaaccaaaccccccccccaaaaacccccccaaaacccccccccccccccccccaaccccccccaaaaaacccccccccccchhhmmssswwwwwwyyywvrqqqjjjjdddccccc
|
||||
abcccccccccccccccccccccccccccccccccaaaaaccccaaccccccccacaaaaaacccccaaaaacccccccccccccccccccccccccccccaaaaaacccccccccccchhhmmssswwwwwwywywwrrqjjjjddddccccc
|
||||
abcccccccccccccccccccccccccccccccccaaaaaccccccccaaacaaacaaaaaacccccaaaaaaccccccccccccccccccccccccccccaaaaaaaccccccccccchhmmmsssswwsswwwwwwrrkkjjddddcccccc
|
||||
abccccccccccccccccccccccccccccccccccaaaaacccccccaaaaaaacaaaaaccccccaaccaacccccccccccaaccccccccccccccaaaaaaaacaacaaccccchhhmmmsssssssswwwwrrrkkjddddaaccccc
|
||||
abcccccccccccccccccccccccccaaaaaccccaacccccccccccaaaaaacaaaaacccccccccccccaacccccccaaaaaacccccccccccaaaaaaaacaaaaaccccchhgmmmmssssssrrwwwrrrkkddddaaaccccc
|
||||
abcccccccccccccccccccccccccaaaaacccccccccccccccccaaaaaaaacccccccccccccccaaaaaaccccccaaaaaccccaaccccccccaaacccaaaaaaccccgggmmmmmmllllrrrrrrrkkkeedaaaaccccc
|
||||
abcccccccccccaaccccccccccccaaaaaacccccccccccccccaaaaaaaaacccccccccccccccaaaaaaccccaaaaaaacccaaaacccccccaaccccaaaaaaccccggggmmmmllllllrrrrrkkkkeedaaaaacccc
|
||||
abcccccccccccaaacaacaaaccccaaaaaaccccccccccccccaaaaaaaaaacccccccccccccccaaaaaaccccaaaaaaaaccaaaacccccccccccccaaaaaccccccgggggglllllllllrrkkkkeeeaaaaaacccc
|
||||
abcccccccccccaaaaaacaaaacccaaaaaaccccccccccccccaaacaaaaaaccccccccccccccccaaaaaccccaaaaaaaaccaaaacccccccccccaaccaaaccccccgggggggggffflllkkkkkkeeeaaaaaacccc
|
||||
abaccccccccaaaaaaaccaaaacccccaaacccccccccccccccccccaaaaaacaccccccccaaccccaaaacccccccaaacacccccccccccccccaaaaaccccccccccccccgggggffffflllkkkkeeeccaaacccccc
|
||||
abaccccccccaaaaaaaccaaacccccccccccccccccaaaccccccccaaacaaaaaccccccaaacccccccccccccaaaacccccccccccccccccccaaaaaccccccccccccccccccaffffffkkkeeeeeccaaccccccc
|
||||
abaaaccccccccaaaaaaccccccccccccccccccccaaaaaacccccccaaaaaaaacaaaacaaacccccccccaaaaaacccccccccccccccccccccaaaaaccccccccccccccccccccaffffffeeeeecccccccccccc
|
||||
abaacccccccccaacaaaccccccccccccccccccccaaaaaaccccccccaaaaaccaaaaaaaaacccccccccaaaaaaaaccccccccccaaccccccaaaaacccccccccccccccccccccaaaffffeeeecccccccccccaa
|
||||
abaacccccccccaaccccccccccccccccaaccccccaaaaacaaccaacccaaaaacaaaaaaaaacccccccccaaaaaaaaccccccaaacaacccccccccaacccccccccccccccccccccaaaccceaecccccccccccccaa
|
||||
abaacccccccccccccccccccccccccccaaaaaacccaaaaaaaaaaaccaaacaaccaaaaaaaaaaaaacccccaaaaaaacccccccaaaaaccccccccccccccccccccccccccccccccaaacccccccccccccccaaacaa
|
||||
abcccccccccccccccccccccccccccccaaaaaccccaacaacaaaaacccaaccccccaaaaaaaaaaaacccccaaaaacccccccccaaaaaaaccccccccccccccccccccccccccccccaaacccccccccccccccaaaaaa
|
||||
abcccccccccccccccccccccccccccaaaaaaaccccccccaaaaaaaaccccccccccaaaaaaaaaaccccccaaaaaaccccccccaaaaaaaaccccccccccccccccccccccccccccccccccccccccccccccccaaaaaa
|
300
data/day_3.txt
Normal file
300
data/day_3.txt
Normal file
@@ -0,0 +1,300 @@
|
||||
GwrhJPDJCZFRcwfZWV
|
||||
LjnQlqNpjjmpmQlLlqNfZRvQcTWcTSTTZcSQcZ
|
||||
nNqjdspspngnmjmslqmjjjCDGrHPHMGddGCMCGPPPJWC
|
||||
GwmVZmPWWFFmBbVbZVwmbPsTCnlgQgnQfhlffffZnlQh
|
||||
DqVDSqqSMzLLDDNSHHLdqSdSllCQjsTlClhlflnTlhjgfgfM
|
||||
VHJztNLHGtcbvvPG
|
||||
bjrPrNCtNrjdcCPpptfpTVspDtfTtB
|
||||
JGQJMJQMmmmZMnnLpLBTpHCD
|
||||
WJJqWRgWlCJZhZRCQZwdPScdrPNbvzPzwvqz
|
||||
QNSQNBWQNLjZBNNhLhSNRsTcsrTTVzcwZZZsfrrbwb
|
||||
tCFtHpppppMldpvpqnMFmMVGrbPcrwbzswrzcccfvTfw
|
||||
pdmCpgqCdmHHdJVWgSRNJDRVVj
|
||||
sNrFnvNSzrjQtQjQTj
|
||||
lcPmcJDLdPDbJPVLljdGGBBThBQTGwTtBw
|
||||
PDLqmJmpJQfFqfqsCM
|
||||
BnhctqdnqnRcBnslCJJCMrJrsG
|
||||
wNDMZpbQwMpCvCGVjlss
|
||||
WfzNwZFbwZzZmFZbLzNwzzzzcdqgRMTTPdHPTTPMRdcWgRPt
|
||||
grsrVSFSSdFSDFVFjZZWwpWpZWZplgZZ
|
||||
mcBPPPBLBfNdLlvvWljWJC
|
||||
dMcmcRdbRzdVhFthSsTShM
|
||||
bzvJZMTzTZSHLCCdDzmDcc
|
||||
hqBqWPFssvshWvvssNqtsHftmfpHfdcdDGHmcpfctL
|
||||
WvBQgNNNhghTJbJQlJTZlT
|
||||
chcdwNwdbCbQctCjnnQGHsQspMHMjG
|
||||
nSSSJqJZzJgWWRfZDJSnqvTTsVvvHVPpHVfpjHMTjP
|
||||
BZRDRmmrDWSrZWWzWSRNhdnCFwChclFtwbNdtr
|
||||
lNgmssCtqLwqCCtfsCLHPFhhhmMhVzBDbVzMDMVz
|
||||
ZnRlQTlJzFQFQFVV
|
||||
npZJvRRGZSnWvSvrSLglsClfpfcLgNgpHf
|
||||
tVtqcVqFVtZhcfFtqlgSpmpDSDNPzSzZmNpw
|
||||
LRGTHqbrHdnGHrTCSSwNDzMDwPMzNwbp
|
||||
TqWGJrGHCHnTWnhsWcFthFjtfQch
|
||||
qNnTbwtctvffFcqfrHjMrFjVHRjSjZDZ
|
||||
dLLzWWPmCmCzGdsLgBLGGBDRMVMHRlrrrZDDZsNMrNNS
|
||||
PJQWggCzWNWJzGWfchvfTbJvfnnwtf
|
||||
ghzdgzzdQsdqzzhMNqQzvhgQnRRBWTjWWGTRGWwGTZhwGnBT
|
||||
fsrfJHbFfDFLVLVFHrWCWrBRZZTGCCjwWZ
|
||||
HLLllcDPbLPQdPspMNgvMt
|
||||
fNDJqdPNbtHpCbwpCCCp
|
||||
RTMRLrzGrMRMRPWnnvSmgCHFCCFmmT
|
||||
WQsWQjzGWMsGQzWclQtVBJfBftNdtqVPfP
|
||||
gbTCVVmDVFdsgmgrrcfwlwfTfPlcRR
|
||||
qhQZqQvnQhLQhJnvfPcSwSwlfjGcqjqj
|
||||
tLNZLZZJJZthpzhMZDCdFmFsmWWmtDDgsw
|
||||
bqCvLvLppzPzPPvPbFztFtttBNGdGsRggSgGSHDdggHSzNgH
|
||||
rMQpWfMfrcTjWJhwWHHsSBsRBdSTTNBgSR
|
||||
VwfmWjwMWwccrWcWpQQFnFtlCqmltFnFLbbZmn
|
||||
cWqsMWJMzqJJMHsJcqsJqTqjSbLBdfdSbtzLbbLfbSfShfhd
|
||||
gplGvQmRrCrgZSZtSGZZjhbj
|
||||
CQmmmmNQRPvjgRClCvmmcVHPqMFMFsWJVqFFcnTJ
|
||||
QHHqvGwjjWNqvGTQGvTFcGwJRJbszcPtDbJVbtPzVbDptp
|
||||
MLdrgmSgZZdhdfbLVRpszlRDstRL
|
||||
gdSgMCSfdMnrghCWGRQvHwvNHjnjvv
|
||||
RDBZwvZBrMlsvnlb
|
||||
WdFQqdjWWcHHPrwSPnnSWnSS
|
||||
mLdqgqHmcjHHjqLHjLppmhfBfgtDtBJZJfVtBZwGZB
|
||||
CCWRJQnZlHtHtNZRFDcBhrcvhDrJVVDv
|
||||
dPPSqLzfsqGLSTzfLzLGdLMVVgvBcmgMVwmmDFrVgmBBBr
|
||||
SFjdTGzqpjdRbNRNnjtnQR
|
||||
hjNcwBDDwDFcjdFfjtFhtcRsGGgTsGRRRTsGGqZGRq
|
||||
gbmrLnbzLmvQJnQVVpqZTqzWSCRpqRTsSR
|
||||
MQMvVMbPQQHrQMnMPldtwNNfgHtlwBhdwj
|
||||
zwzwpzMfzrBMWfCCZrwzrMJDGGGnNmGNZvgNZsDDsGsG
|
||||
FbFqSbcSbSHqTjmgGFnJglllsDJm
|
||||
TbhVdVjqdtqTjVHqjPdthPBBWpCnRfwRPRCfBCCnWR
|
||||
hlpmbfJJpCSChmJMmrSjTjcSdjTtQQTtTtjF
|
||||
gqrgsqLzgnBgZGzHBnnsQNNQtjjcNNjjtNFQNcNH
|
||||
LVRzgGGzzzPCVrJMbPJb
|
||||
VHrmqFnVdvlzzNrr
|
||||
PMtwBJPBcPwfbwBJndplLvLdLlgMMzLL
|
||||
bBZnTwbtnScfQJPJwPTjqGZFsVFjDHHGhhHhVj
|
||||
cftqScHJrfVfrrRZ
|
||||
DTTsDvvlBbTGrWBwwsWDBbWdVpZjjZjpVPPGhRRVjVZNRPNN
|
||||
lsWdWDbrTLBsbdrmdwbMJtmHMQJccFHFnJFqFt
|
||||
SWNPTPVSWChCSmQQhpppJdFJLpDpgLJmLd
|
||||
NGGtNtGfHtDpdJdqLB
|
||||
NcsNGNjHZsZGnzZfnGhQnhPClrVlQPhTVVhl
|
||||
QDdgMBsNhhMgcWbZdzmWLzFzWH
|
||||
fRqRJJqGCvrJGjCRRrSJlfPtHzzPmfFbtPtLZZLnmt
|
||||
VjvwwjlwVGGqJSSqJFccshpgNhQNQTsVgBgT
|
||||
wvDLDwCbFgSTfTSJJgfB
|
||||
qsRhmhqchmVhPdfTHJSzpCtJpfPf
|
||||
hmdhrWrddmhlqCRcwQjDLMQnMFDZnlLl
|
||||
trMWtlwwMplMZMCZWltDpzBLBnflVLBbHzbBSGlVlL
|
||||
ghhqJTfmjQjfqqznznnHnBRzBLmn
|
||||
sQhPQsjjQcQcTsPqZWwwZcFfWrWcrZww
|
||||
MRVpVCZZTHWVMCHvgNvVvbQSqgQSlg
|
||||
NFmnrNDDfnjFnndfssmcStvjvQQlvzvllqvwQllj
|
||||
GGPNmBrFNdcfcGrsGcdmDFhJHMMhHLZJMhpLHCMMMMPJ
|
||||
DSvDGdGFlGGnDZFdVSZvfPqwnfhpnrqpPNpLPrrh
|
||||
sWcTjtHCsTmsCNfgMPjpfPhqhP
|
||||
BtHzBzChzBBvFSDJvVzFJJ
|
||||
sfsNrsFFBTfjwwtNNWHPVCVWtSCDDCDmmS
|
||||
zMdhMMZnSccMmmWVWmCPlC
|
||||
cLSScJZQbcvLhZvnzBwfTjrpNwNrBFffpb
|
||||
TBrCBgrTngVQBVbhrCtgJJrGssGsMGRGcjMcNjfN
|
||||
LZdSLvHMFdzFRWsLjcGRWWNJ
|
||||
pHpzlqPqFPvdBthgMbVPDhgh
|
||||
SZlnZZvBvvMrcBnllBMZSvhGMtQwFMGztthfwQtMwwPf
|
||||
HLqsDgNsDLDDDjggHDHszthzFbQGTghPGQPbTfFT
|
||||
dmLqDqCmFNjJsjHdssFNHDVWZccnRllnVZvRSBZrZlCc
|
||||
SccnnSGGftShfHSHHhnvbMjvVlCjzbVzzbMMTbCB
|
||||
gRpppNNQLWqZgPZwNWwwBMBbDlZCTzVTjHMMbBjV
|
||||
dqNQPQRqrqpPcGtchhdfhHSF
|
||||
mfDzgnNMMszBtJCpHlrjnFppCdHj
|
||||
LLRThGGZcbClBQpdWFGl
|
||||
bSqVTbBbMVMsNmNM
|
||||
BTTbbLVpfchmjbsj
|
||||
JSQJHDMHqdNZTZlhFFhCFFrNhNcsrr
|
||||
tMwJQlwMMlQwDDJtWGLGPpWLLGnTPn
|
||||
LcVQQCPPLqTzqQTcllTzhnHHfFJRcGHcFfwRGHwJjJ
|
||||
stdWDDBtVgbpWgZbsNgDNdWFGMnnwHfjHFpfwwMGMMGRjJ
|
||||
ZWSDtgNdWNBdgsdsNDDsdbDlTzCVSTCqQmSqTQSvhqLVQq
|
||||
dZbgdZbNtmqttFJtHHzcczMcFszHnsvH
|
||||
wwpQplQQwqVVjqwPjCGCSMCMcHSHvvzHMzvcsrMc
|
||||
pfjlQRpPRRLQWtmLNdWdmqqJ
|
||||
CPTPPmbjmVjVGCvzbjjPrGsnnMpttdtGdncdMccDRd
|
||||
lhlHzQSHwzhJLwgWgpMDMMsDdcDQMDMMns
|
||||
BHZghLWwSFBJJBFvzmbfjNZvZmCvmb
|
||||
PBGcvvcRwpwNcZcNPpPNcTHGdMtrCWrCCtCLWMtWgbVdMV
|
||||
fmsJjnqmmfsjQJnjFzSFSqsqgWrtMttZgMWVMbbVMdbSrLtr
|
||||
qQjjZFmfjZhZmwcvPhNpTNBTwN
|
||||
HHlVVmmsbbqMsJmVzGSBMSrQQrRrGvvnDn
|
||||
PZcphZPPZPhjcpdWgPZhRPfcDSrtDBSGNvtggrQtnvQNGNDn
|
||||
dcWwFjpcPhRcCpjwdCPLzHblJbLbzmsmbTwzqH
|
||||
hRfzTTfRrTGzhGWTrRrbfcQZQSttWtwddJtvdJJvWSHq
|
||||
npjnDjFlpDnFFNMjljCnFMQtHHtqNHNQJwwZZqstNwJJ
|
||||
DCjpLjjpVLDMDpVLDLQbbhzBhVrcVgVGQQcz
|
||||
LncLBLjCSNrNrNpCLQBBBGwqQwzlzmggvqRqgllmzwtv
|
||||
fMZPHhhHfthMdbRgHJzmVqlvwlwg
|
||||
hfsPbZFPPDsfGLcBtSFNBSjL
|
||||
MlZmszBMJBHrMBMbShwSFpbZSZfwwb
|
||||
TCLCcPNGTgTPNGWtCtcWtPcSsRfRjRwjFbfpNFDjwsFspw
|
||||
nVtqqsWsdHzJHqmM
|
||||
RCrhSmWrmrvmrvhMvRNrRCzCJcQQbPtsMZVGJJtsZssPcQcZ
|
||||
jLFBGqLFpqBLgZVbPbsLJQcbsV
|
||||
HjDljGFwrRHRRTrS
|
||||
GZZhnrwZBwNjRPRCbCbn
|
||||
fJtJJpsVfpgNTbVNFTRP
|
||||
JJcpLJfLdcWLdplwRdQMBvSqwRhvrG
|
||||
wmZDPlRlCDwglgsHtsBvdBHLFLSddr
|
||||
VbVMnMftfVjQWFFHdMBdBFMFHr
|
||||
zfjtnGqqnjGqfjPcDPlZPlRDzccw
|
||||
BRjhfhvRgnTMlFDDJfZzZFFQDZ
|
||||
qLdqcNttwwcwwSPSpqLNmrwmrZsGzzDFZGZFzVssrzJGnsQG
|
||||
wSNdHScScdmwHSpdNcmmtLMvChRHbvBMTBnCBBvhvlCh
|
||||
JgWTPfFPgCPPlCntQSGghHvQnSdQ
|
||||
BzvMZvLVQpdQpSZh
|
||||
RwVVjRDVcRDNDTlJPqTv
|
||||
SGHSrBBRPhPPHQcTccQTRRQjTN
|
||||
vvWvspCbzWVWVrWdjj
|
||||
wZpDzCDgDbCZJZzJGlrlqPqnqPllmH
|
||||
FCncCrDWMLCbjMCcFpLdzZfmZzwwWzdzNRZdWB
|
||||
sqsgTqHSqllNldMwlZzJ
|
||||
MtHPTgQhvhhqcrDrrDpjLCQc
|
||||
pPPvmPWSClqqPvqCmSwqmgGBWDjhGLHfjhDLJGjBBhNj
|
||||
zrbdcdMndcRdTrsMcbTRdzRFVHjLjDjNLNHsfDhNGjhJNhDj
|
||||
RdFFcnTdZcTrRRdFFbZtwQCPQglvPlwJwQPZSqqP
|
||||
wlmbvwmvQvWQsvmbsSsQbswlRCNPfCTcTRVCffPtTSCPNRVP
|
||||
FhJJJFgFqJGBtDpJhTTcVcVhdcCdCdTV
|
||||
GDFtgLFnqqDGqGZsQvsllrjbLjbrvw
|
||||
lnFSnJvmgvLlfnJpgnsjnjgfDQWqCJqZdDtDCtCtCdDrtDDQ
|
||||
VTBBMPFcNNtMZDMW
|
||||
VTGbzGGhTbTGHwVPvvFnfpvjgHnfjppp
|
||||
JJwHqvlvDjljDwJFlZjZDwHNNsMqhNpphNpmNVzpsnsnRV
|
||||
mTLgrLLcLSTTTdmPPfrrrnssNhRNWhgngzMWzgzVnM
|
||||
SmTfdSBbBJbtjJvljl
|
||||
bPNLwTCLLQQqtJsf
|
||||
zdnnZVlWWGGRWGWdgdSStQMqJSMRptftbsMf
|
||||
FWbvgvZZZZgnTmwrrhrFPCrP
|
||||
HcGzzszFGllHWHbZspHbHGsHTwwrTrLLCNjSZwNjNjjCCNLj
|
||||
PBJMJQJDDDnDggRhMdRSLmjTmTwwVjVQSvvwvC
|
||||
RqfdhgDPDJDqJJnBdfzWWHcstslcbtStfHzl
|
||||
zvRRlCqrdNdZcZpjBpVwjsmjsm
|
||||
fgbTDqbhGfDnLDnLLqLhFmsHpTPHjHppppBwpwws
|
||||
nhnnnDDngDtDbfSbDnGhhgRlNvQdQqNvQvtcQQNJRNJN
|
||||
cZbCcbbScCbcmPGjPfSBQQSq
|
||||
lnMnnVsMVvmzzGMDzPDf
|
||||
LhrTsTTglrnsrrWWVvlwTnNtcpZRCmhtbCZFdttZbRCp
|
||||
NWrFPZVWNVrvvrhtnNdddtpldmjm
|
||||
DcBQBDsJbCwQnbtdzmjjjljbpjbz
|
||||
qCDcGsDJGCcBDBcswJnBJQDfWfqgvZSvgZPfrVSWvPvZZZ
|
||||
vcsdHdGtHtMHMFtVsddsWCcbppZwjScLpWhbjRWR
|
||||
NTwrnzJrgTPrDwnlphRpjSpWbJJLLZWj
|
||||
TlDPfPnzzlzTBzzvQFFBHMtVtqBqqw
|
||||
NHnqqfZvZBNHHvgfrSlJrJCSllJRVrCn
|
||||
TDTdhLMWjFcddMJPSSPJRmlCPz
|
||||
bljWFdLLTDLtdFtLlwZvqfbgwwHfwqHNvw
|
||||
BRRjhRQndRNVqBjRVhFLccjpwMmLmjHmgFHH
|
||||
fZJfJvzPPWtWWlltZzZPpcgFMsFFwwFdpHdgwtdw
|
||||
PCrdrzzfWCPdvSlqTqNSDnnQVVQQGT
|
||||
DjbfBMDSfBljBsLSjSZbzrGtPtMCPtVPvvqrzqzG
|
||||
mWdJWcppcNTdpppjzjRRVrPRpq
|
||||
QncmnHwmdTmwQcmjNTfgfhlBShshhsffnfbB
|
||||
WGDsMJsrjHCWtDMGDDVQqSvZqfSJzSnvnvvv
|
||||
LgLFLFBFLVVzfBzMqZ
|
||||
lgmFcwLhNcwdwwMLwhmcRDjNpCWRsWRspGGssHCp
|
||||
PnPzNccnjFfvCvhbSBVcWqdhSVhV
|
||||
psGMDQJDDDJgQNDHHJbwqwBsVqqZVWBBhBdd
|
||||
DlDJDQGptpgpGDfTRnrTrFPnNTlf
|
||||
MSSSMLLmFHcDScSq
|
||||
ppZnCsbjPZpnnJcbRDmzHJqRRD
|
||||
pmNmnGnQNnClZGMVMdBGrMgVWg
|
||||
lsTTGcQzBcljCcQzGcGjGptttpmvSJtmggtwwswwtS
|
||||
qZRnrhMbRVdhZRhhdnnVRPbmwSNwNNHtmJBvwpvtwNSvSb
|
||||
VnMrqrrdqhZrnrBLLlzzlQjQjLfTcGfFDF
|
||||
dJJTlHvhZqZlQTJnSgQDzgsSbScsSBzc
|
||||
RRNtGjCCpRPPpRtjfrttRzmbscLsLZLgcsbmLzSGLB
|
||||
wfNttfNrtWwPNNFfRtpfrdJMTTTZTMZTTVTlVwTlvM
|
||||
PQTGLmdNTgPmGgNNdCPLQlrMqBrDzMCMFqDqFqjVCBCD
|
||||
hhRwwvpSFmzDrmFh
|
||||
vwwZfSfsmvtSspnZLLLdLGWPTGTQtTWG
|
||||
pMcWzWFvWhFpPMWzvvhpdprHTZTQrHrQdZTJdfTgQTnJ
|
||||
CGbjBbNjjDmRHJDgrTVVZg
|
||||
NNttGlGqNLsbtlhMFMFcMLwMvvZz
|
||||
CGSCBNCQBtBCQttBwCGtGtQrqrLrJqZHLHbqHvLDHLrq
|
||||
nVVhPMfVdfVPbfqLLqgDDqPvgZsv
|
||||
cpVncbfnhFcBltTplpmTBC
|
||||
MrdcdStbMnddtRBdqMnFmbqGCwqCVHVsNHwPfGVPqsCsCs
|
||||
DBLllzWWQQzlZVVVCsGWHfsH
|
||||
JQphjTgBjlLgjjpTpLgvTjQnnnSJJRRFmdbRRSdMRtmdMc
|
||||
QbRZMSWMblwLsgpwZzqZ
|
||||
BFncBrfcdNrrnVrNjsFzFTJpJLGJsGqLTp
|
||||
VjhDDBdrfdhQMllzHmPQMh
|
||||
LdVVjFVFbpVGRQGllG
|
||||
cNMcJNHzJWJtCWHNJHcHczWpGmmhMQmBBqrlRhBmpGpGBQ
|
||||
JZzTTtCZtHCJnNnNwPfbFpnfdDdLdnvP
|
||||
TpMlrWTTddjmlmDmgQgRtw
|
||||
MNNVMSsVSNSnNVMFLDqwtGgRRtGbgFRwtR
|
||||
CCLSCPSCZZHVCfZscBJJhPphpdpprdhjJM
|
||||
gSMSHJHsMMpzRgHzsRMPPSzsPhtZtZdqdDqQDhdCdZmQldht
|
||||
FCcCnrGcNTfvvtqqfvlflQ
|
||||
TrTrWNWwrTJLMzJCzWLL
|
||||
TpTzwMrfbrpFpMbFrrrzbPSdZmtSZRTlTZRlmdCVlCtJ
|
||||
vqvWgqDJQJsQCVtZgdZdRRGd
|
||||
vsvLJLchWBcqnvczwjLfzPjfrjzPrz
|
||||
zqzbqCFZgmzzmNmf
|
||||
vpRWSbRVbVWddVpwvwdRSwnSNgLHsnfNgMmgMLMmnrns
|
||||
DwWVpJRlpdbpRDWdGJGcGlhFtPPCqCCBFqZPQttlqFBq
|
||||
wQRlwtBJBDwttJdGvLfBvHLLfTLz
|
||||
MMmNZcMrcMFnRHzfjjvvHfvc
|
||||
FggpbFnhrNNrrMrMbMbnhQVJVhstJwqWCVCRsQJQ
|
||||
DQbCGblQlpQFQlHjCbjwDQQMggNmJmgnnpRBngfZmNgJMf
|
||||
zvhWccWVdWBchdssPrrWZZZfmsmmmgsnZZJRsRTf
|
||||
zBdtqPccWPHFCqCCqljq
|
||||
ttrbRMmgtHgfmHSfBpLfnBBZBppB
|
||||
CVTJDCCNPwCPDwcqzmddQZdTQdnLBQThWp
|
||||
zwFDjwDJJPzjzVNcVJwCcbRHGmbbMrFHgHvrsgbblG
|
||||
gZjjwHqHCzrMZVVR
|
||||
hhzcdTzPrVhVCGMb
|
||||
fPcmLPNffsccJDdNDjBnpwzmHqgWjHwwvg
|
||||
SJQFSvQBlzbSCgdPPddPPPSN
|
||||
pcrjcWLwwcHcgPNgTPLMNTCB
|
||||
pRsjsWRnrpHRmrBrHrjlbJFvvzQFnzQblQDDbJ
|
||||
VjQVMQPVMfVPPbGPHHbGJD
|
||||
pcqSttltsbDGddsCJG
|
||||
TSchqLtTLFhgQbMMQMrr
|
||||
trqzMRwNTtDzLPJQgWmjmjrf
|
||||
lbBQdpZbsmhGmZhmmG
|
||||
llVbpCplvvHBBHpnRDcDRRqnRRQnFRzT
|
||||
SLSSFFmzLShsVSSHnLnrJdbnRdZZbrRw
|
||||
qCfWBftpNWNNlqvTpwrRbGGCnwGmgRJGZn
|
||||
NcTBNpvWvBWpMftNffpqWlTpmzPDQPSzFVMsFQVhHsjHszss
|
||||
VtJtNBRBGDpdpNbC
|
||||
QgLncnttvFcwwhLvFjSGsSbmmQCSDdpCmpdG
|
||||
vLgjLhhrctMvLFFjLtMTLMgfPZqBZPZzJBBfWZZPRZZTRV
|
||||
mJzDJJpJBvfsGMQnBM
|
||||
CwPWCLRRWwRqwPqhPsrZrnrlhhQrMTrvZl
|
||||
dCdLLSPRLSqWqVSLqLjgJDzDmtbngFVtJtzz
|
||||
mtgWtMWrqjzQTTjghwwfczlNJdlcJnlc
|
||||
FvRsDPPFGRBFvvslwDnTlcTTdwndlh
|
||||
SGBZRBTsFGBRvLpvSCmgQWQjgggMrQjmmSmW
|
||||
GcsRrQhrVVjhRcWlnDFGGmvntDWZ
|
||||
TPbSgJJgBSCbCTbLHMCMTTZdFHvtZlWZDZFzmzZHZmmF
|
||||
gBCMCSpbPMMPjcjqQQpqQprv
|
||||
nZJcnZwvwzvTTTVtpDFnHH
|
||||
DQPBqGGGdMdTRHRBpNgFNR
|
||||
dCGPfhPWQdWWWCWShWPqrChWLLwLswjcvSJbvbLjJLbzJbJD
|
||||
QrBQtdtrQBrdtFHPrdQBDvGhLGnPnCWnmpDmLpmD
|
||||
NjlRJRlNzJJVbSSRVZwwJcmpWDGCWnbchnLCCmnWCG
|
||||
llSJzsZzMMlsSZjSjZwJNQqtHHdBFsqdfTHhqFftQB
|
||||
zdTJFHTdDBzrNdMnhNnNdM
|
||||
ZlLZZcLtVtcWtGjtzLjLZjCrnVNrnRbrQQbQSRVrRnSNqS
|
||||
lZtGtCvjZPCGCctPpsDDBzTHFmPmFszD
|
||||
mQSMvdMQtQdZhQrPWCPqPQrN
|
||||
RwjwnZGzJFTZgzggzJDDwJnCPPhNNqPrLhrGNcWcWNPqCq
|
||||
ZTzDfnwFzTngTwJvfSlMtMMlmsHmHt
|
||||
lZlmFRVZWmgQWhRsRpJsCJpJct
|
||||
PTbPTGTGwwGrbdfjNNZJvcCsCZtvpTsh
|
||||
bGdBBqGrdBPjDMzzVFZgqQzFFL
|
||||
szvsmLvppPPtzGLGWpVdTSHTNgjHQRmHTgSH
|
||||
FnBMBNZwZNcnDZMcnZlZgwgdQTTHjVJjHHVRQHJj
|
||||
DnZrFCMZMNffrLPbLsfW
|
||||
rJvmnBgnrCrGRSGNQR
|
||||
hthjNfhwctwpjTLtVLjTGSpldSCGSPdlPSRzSqSz
|
||||
TVcTfHNFcwtjMhTvgbHZsBbWmmZbnH
|
||||
WsQgstQmvQJnssWsWPzhRzhBjZBSBRZSnj
|
||||
qwCNqFwDrrlDrFPvRhTSPPzLRz
|
||||
bppqwppCddlvfbDNVgmMmtMfVVmfmVWW
|
1000
data/day_4.txt
Normal file
1000
data/day_4.txt
Normal file
File diff suppressed because it is too large
Load Diff
512
data/day_5.txt
Normal file
512
data/day_5.txt
Normal file
@@ -0,0 +1,512 @@
|
||||
[N] [G] [Q]
|
||||
[H] [B] [B] [R] [H]
|
||||
[S] [N] [Q] [M] [T] [Z]
|
||||
[J] [T] [R] [V] [H] [R] [S]
|
||||
[F] [Q] [W] [T] [V] [J] [V] [M]
|
||||
[W] [P] [V] [S] [F] [B] [Q] [J] [H]
|
||||
[T] [R] [Q] [B] [D] [D] [B] [N] [N]
|
||||
[D] [H] [L] [N] [N] [M] [D] [D] [B]
|
||||
1 2 3 4 5 6 7 8 9
|
||||
|
||||
move 3 from 1 to 2
|
||||
move 1 from 7 to 1
|
||||
move 1 from 6 to 5
|
||||
move 5 from 5 to 9
|
||||
move 2 from 5 to 2
|
||||
move 1 from 6 to 8
|
||||
move 1 from 5 to 7
|
||||
move 5 from 4 to 6
|
||||
move 1 from 7 to 6
|
||||
move 1 from 2 to 4
|
||||
move 5 from 2 to 6
|
||||
move 2 from 1 to 5
|
||||
move 2 from 1 to 9
|
||||
move 16 from 6 to 4
|
||||
move 6 from 8 to 3
|
||||
move 7 from 2 to 4
|
||||
move 5 from 9 to 3
|
||||
move 1 from 1 to 4
|
||||
move 1 from 1 to 3
|
||||
move 3 from 7 to 4
|
||||
move 2 from 5 to 4
|
||||
move 31 from 4 to 8
|
||||
move 22 from 8 to 4
|
||||
move 9 from 3 to 6
|
||||
move 7 from 9 to 5
|
||||
move 4 from 5 to 6
|
||||
move 6 from 3 to 2
|
||||
move 2 from 6 to 7
|
||||
move 5 from 2 to 7
|
||||
move 1 from 2 to 4
|
||||
move 1 from 7 to 5
|
||||
move 4 from 5 to 4
|
||||
move 2 from 6 to 9
|
||||
move 2 from 4 to 6
|
||||
move 7 from 6 to 4
|
||||
move 2 from 6 to 1
|
||||
move 1 from 6 to 8
|
||||
move 8 from 8 to 1
|
||||
move 1 from 7 to 6
|
||||
move 4 from 1 to 5
|
||||
move 9 from 4 to 8
|
||||
move 4 from 1 to 7
|
||||
move 3 from 5 to 3
|
||||
move 2 from 1 to 9
|
||||
move 1 from 3 to 2
|
||||
move 1 from 9 to 8
|
||||
move 1 from 2 to 1
|
||||
move 1 from 1 to 8
|
||||
move 1 from 5 to 1
|
||||
move 2 from 3 to 1
|
||||
move 2 from 6 to 9
|
||||
move 19 from 4 to 1
|
||||
move 4 from 4 to 2
|
||||
move 6 from 1 to 4
|
||||
move 1 from 2 to 4
|
||||
move 4 from 4 to 3
|
||||
move 7 from 7 to 3
|
||||
move 7 from 8 to 2
|
||||
move 2 from 7 to 4
|
||||
move 3 from 2 to 1
|
||||
move 8 from 8 to 2
|
||||
move 3 from 9 to 1
|
||||
move 2 from 9 to 1
|
||||
move 10 from 2 to 7
|
||||
move 4 from 3 to 1
|
||||
move 1 from 8 to 3
|
||||
move 1 from 4 to 5
|
||||
move 1 from 3 to 6
|
||||
move 1 from 2 to 1
|
||||
move 10 from 1 to 3
|
||||
move 1 from 4 to 7
|
||||
move 1 from 6 to 4
|
||||
move 7 from 3 to 2
|
||||
move 5 from 2 to 8
|
||||
move 11 from 7 to 2
|
||||
move 3 from 4 to 3
|
||||
move 1 from 4 to 3
|
||||
move 5 from 8 to 9
|
||||
move 17 from 2 to 4
|
||||
move 11 from 1 to 5
|
||||
move 4 from 1 to 3
|
||||
move 5 from 9 to 2
|
||||
move 4 from 2 to 1
|
||||
move 3 from 5 to 7
|
||||
move 6 from 5 to 3
|
||||
move 1 from 5 to 8
|
||||
move 6 from 1 to 8
|
||||
move 3 from 8 to 5
|
||||
move 1 from 1 to 4
|
||||
move 1 from 7 to 2
|
||||
move 15 from 3 to 4
|
||||
move 1 from 1 to 3
|
||||
move 10 from 3 to 9
|
||||
move 2 from 7 to 4
|
||||
move 1 from 2 to 8
|
||||
move 21 from 4 to 9
|
||||
move 1 from 2 to 3
|
||||
move 1 from 8 to 1
|
||||
move 9 from 4 to 2
|
||||
move 1 from 1 to 5
|
||||
move 5 from 2 to 7
|
||||
move 2 from 8 to 5
|
||||
move 1 from 8 to 1
|
||||
move 2 from 2 to 8
|
||||
move 2 from 4 to 9
|
||||
move 24 from 9 to 5
|
||||
move 3 from 4 to 1
|
||||
move 2 from 2 to 5
|
||||
move 12 from 5 to 1
|
||||
move 10 from 1 to 5
|
||||
move 23 from 5 to 6
|
||||
move 8 from 9 to 1
|
||||
move 3 from 8 to 1
|
||||
move 1 from 1 to 2
|
||||
move 1 from 3 to 7
|
||||
move 11 from 6 to 1
|
||||
move 1 from 2 to 4
|
||||
move 6 from 6 to 8
|
||||
move 4 from 6 to 7
|
||||
move 1 from 7 to 3
|
||||
move 1 from 3 to 4
|
||||
move 23 from 1 to 8
|
||||
move 1 from 4 to 2
|
||||
move 1 from 2 to 1
|
||||
move 1 from 6 to 7
|
||||
move 6 from 5 to 3
|
||||
move 1 from 7 to 8
|
||||
move 1 from 1 to 8
|
||||
move 1 from 9 to 3
|
||||
move 6 from 7 to 2
|
||||
move 3 from 5 to 9
|
||||
move 5 from 2 to 3
|
||||
move 28 from 8 to 3
|
||||
move 4 from 1 to 9
|
||||
move 5 from 9 to 5
|
||||
move 2 from 8 to 5
|
||||
move 1 from 9 to 4
|
||||
move 2 from 7 to 5
|
||||
move 1 from 4 to 2
|
||||
move 1 from 4 to 8
|
||||
move 2 from 8 to 3
|
||||
move 6 from 5 to 2
|
||||
move 1 from 7 to 2
|
||||
move 39 from 3 to 2
|
||||
move 2 from 3 to 8
|
||||
move 1 from 9 to 6
|
||||
move 2 from 2 to 9
|
||||
move 2 from 9 to 6
|
||||
move 1 from 8 to 1
|
||||
move 1 from 1 to 6
|
||||
move 5 from 6 to 9
|
||||
move 2 from 5 to 8
|
||||
move 20 from 2 to 4
|
||||
move 2 from 4 to 8
|
||||
move 2 from 8 to 3
|
||||
move 3 from 3 to 1
|
||||
move 22 from 2 to 5
|
||||
move 2 from 9 to 1
|
||||
move 3 from 1 to 7
|
||||
move 1 from 2 to 6
|
||||
move 1 from 2 to 9
|
||||
move 1 from 1 to 8
|
||||
move 2 from 7 to 9
|
||||
move 1 from 6 to 8
|
||||
move 1 from 2 to 7
|
||||
move 1 from 1 to 3
|
||||
move 1 from 9 to 8
|
||||
move 1 from 8 to 5
|
||||
move 3 from 8 to 7
|
||||
move 3 from 7 to 8
|
||||
move 15 from 4 to 1
|
||||
move 1 from 4 to 3
|
||||
move 10 from 1 to 6
|
||||
move 3 from 8 to 1
|
||||
move 5 from 9 to 4
|
||||
move 7 from 5 to 1
|
||||
move 4 from 6 to 3
|
||||
move 15 from 5 to 2
|
||||
move 4 from 6 to 4
|
||||
move 7 from 2 to 1
|
||||
move 6 from 4 to 6
|
||||
move 1 from 5 to 9
|
||||
move 1 from 5 to 7
|
||||
move 1 from 3 to 5
|
||||
move 11 from 1 to 8
|
||||
move 3 from 4 to 6
|
||||
move 4 from 1 to 5
|
||||
move 1 from 2 to 5
|
||||
move 2 from 8 to 3
|
||||
move 11 from 6 to 1
|
||||
move 1 from 3 to 7
|
||||
move 1 from 9 to 8
|
||||
move 6 from 5 to 8
|
||||
move 3 from 8 to 4
|
||||
move 1 from 4 to 5
|
||||
move 3 from 3 to 1
|
||||
move 9 from 8 to 2
|
||||
move 2 from 1 to 5
|
||||
move 11 from 2 to 5
|
||||
move 1 from 3 to 6
|
||||
move 2 from 8 to 5
|
||||
move 3 from 4 to 6
|
||||
move 1 from 8 to 3
|
||||
move 2 from 1 to 9
|
||||
move 1 from 3 to 8
|
||||
move 16 from 5 to 7
|
||||
move 3 from 1 to 6
|
||||
move 1 from 3 to 5
|
||||
move 1 from 6 to 7
|
||||
move 1 from 9 to 4
|
||||
move 1 from 5 to 4
|
||||
move 1 from 3 to 2
|
||||
move 1 from 1 to 2
|
||||
move 3 from 4 to 9
|
||||
move 1 from 2 to 7
|
||||
move 2 from 8 to 3
|
||||
move 6 from 2 to 8
|
||||
move 11 from 1 to 3
|
||||
move 6 from 3 to 1
|
||||
move 4 from 3 to 2
|
||||
move 2 from 3 to 1
|
||||
move 1 from 1 to 3
|
||||
move 4 from 8 to 4
|
||||
move 4 from 8 to 2
|
||||
move 11 from 7 to 2
|
||||
move 9 from 7 to 5
|
||||
move 1 from 7 to 3
|
||||
move 4 from 5 to 7
|
||||
move 14 from 2 to 3
|
||||
move 17 from 3 to 7
|
||||
move 2 from 5 to 2
|
||||
move 1 from 5 to 7
|
||||
move 1 from 5 to 6
|
||||
move 4 from 6 to 7
|
||||
move 8 from 1 to 2
|
||||
move 2 from 6 to 4
|
||||
move 1 from 6 to 8
|
||||
move 6 from 4 to 1
|
||||
move 1 from 8 to 5
|
||||
move 6 from 7 to 8
|
||||
move 5 from 8 to 3
|
||||
move 12 from 2 to 1
|
||||
move 1 from 8 to 4
|
||||
move 4 from 3 to 1
|
||||
move 4 from 2 to 4
|
||||
move 3 from 9 to 3
|
||||
move 3 from 3 to 2
|
||||
move 1 from 3 to 2
|
||||
move 3 from 4 to 1
|
||||
move 2 from 5 to 7
|
||||
move 22 from 1 to 8
|
||||
move 17 from 8 to 6
|
||||
move 21 from 7 to 6
|
||||
move 3 from 2 to 8
|
||||
move 3 from 1 to 5
|
||||
move 3 from 5 to 2
|
||||
move 2 from 4 to 6
|
||||
move 7 from 6 to 5
|
||||
move 1 from 9 to 4
|
||||
move 14 from 6 to 4
|
||||
move 5 from 8 to 3
|
||||
move 1 from 6 to 3
|
||||
move 3 from 3 to 9
|
||||
move 2 from 9 to 1
|
||||
move 2 from 7 to 1
|
||||
move 16 from 6 to 8
|
||||
move 2 from 6 to 7
|
||||
move 1 from 2 to 7
|
||||
move 1 from 3 to 8
|
||||
move 7 from 4 to 1
|
||||
move 2 from 7 to 2
|
||||
move 4 from 4 to 7
|
||||
move 5 from 2 to 4
|
||||
move 1 from 7 to 3
|
||||
move 3 from 5 to 8
|
||||
move 1 from 7 to 5
|
||||
move 12 from 1 to 6
|
||||
move 3 from 7 to 2
|
||||
move 7 from 4 to 2
|
||||
move 3 from 3 to 2
|
||||
move 1 from 4 to 2
|
||||
move 1 from 9 to 8
|
||||
move 8 from 6 to 8
|
||||
move 12 from 2 to 4
|
||||
move 5 from 5 to 2
|
||||
move 11 from 4 to 9
|
||||
move 3 from 6 to 3
|
||||
move 2 from 4 to 2
|
||||
move 4 from 2 to 6
|
||||
move 5 from 2 to 8
|
||||
move 12 from 8 to 4
|
||||
move 20 from 8 to 5
|
||||
move 13 from 5 to 3
|
||||
move 1 from 8 to 5
|
||||
move 5 from 5 to 9
|
||||
move 16 from 9 to 1
|
||||
move 9 from 4 to 5
|
||||
move 12 from 3 to 9
|
||||
move 5 from 6 to 5
|
||||
move 9 from 9 to 7
|
||||
move 14 from 1 to 4
|
||||
move 14 from 4 to 1
|
||||
move 15 from 5 to 7
|
||||
move 4 from 8 to 2
|
||||
move 3 from 4 to 3
|
||||
move 3 from 1 to 8
|
||||
move 1 from 5 to 9
|
||||
move 1 from 5 to 3
|
||||
move 3 from 9 to 8
|
||||
move 4 from 3 to 4
|
||||
move 1 from 4 to 6
|
||||
move 20 from 7 to 2
|
||||
move 2 from 3 to 8
|
||||
move 3 from 7 to 2
|
||||
move 4 from 2 to 1
|
||||
move 1 from 6 to 7
|
||||
move 3 from 4 to 2
|
||||
move 2 from 2 to 3
|
||||
move 4 from 3 to 4
|
||||
move 1 from 8 to 1
|
||||
move 3 from 8 to 1
|
||||
move 2 from 7 to 8
|
||||
move 1 from 4 to 5
|
||||
move 14 from 2 to 5
|
||||
move 6 from 1 to 5
|
||||
move 1 from 4 to 3
|
||||
move 15 from 1 to 4
|
||||
move 1 from 8 to 2
|
||||
move 1 from 9 to 5
|
||||
move 4 from 8 to 7
|
||||
move 13 from 5 to 6
|
||||
move 1 from 8 to 1
|
||||
move 2 from 7 to 9
|
||||
move 12 from 6 to 4
|
||||
move 1 from 3 to 6
|
||||
move 1 from 1 to 6
|
||||
move 4 from 5 to 2
|
||||
move 5 from 5 to 6
|
||||
move 2 from 6 to 2
|
||||
move 1 from 7 to 5
|
||||
move 2 from 6 to 9
|
||||
move 1 from 5 to 9
|
||||
move 16 from 2 to 5
|
||||
move 17 from 4 to 1
|
||||
move 3 from 1 to 3
|
||||
move 1 from 2 to 6
|
||||
move 2 from 6 to 1
|
||||
move 3 from 3 to 1
|
||||
move 14 from 1 to 8
|
||||
move 3 from 5 to 2
|
||||
move 4 from 8 to 2
|
||||
move 3 from 4 to 5
|
||||
move 15 from 5 to 3
|
||||
move 1 from 7 to 6
|
||||
move 3 from 1 to 8
|
||||
move 2 from 3 to 7
|
||||
move 1 from 1 to 2
|
||||
move 1 from 7 to 6
|
||||
move 4 from 2 to 8
|
||||
move 2 from 6 to 2
|
||||
move 1 from 7 to 6
|
||||
move 3 from 8 to 2
|
||||
move 12 from 8 to 6
|
||||
move 1 from 5 to 6
|
||||
move 3 from 2 to 5
|
||||
move 2 from 2 to 5
|
||||
move 4 from 6 to 5
|
||||
move 4 from 3 to 5
|
||||
move 1 from 8 to 4
|
||||
move 11 from 6 to 4
|
||||
move 6 from 3 to 1
|
||||
move 2 from 9 to 8
|
||||
move 20 from 4 to 5
|
||||
move 1 from 4 to 9
|
||||
move 2 from 3 to 8
|
||||
move 1 from 3 to 8
|
||||
move 17 from 5 to 8
|
||||
move 5 from 5 to 9
|
||||
move 9 from 5 to 1
|
||||
move 2 from 6 to 7
|
||||
move 23 from 8 to 2
|
||||
move 2 from 7 to 5
|
||||
move 3 from 9 to 4
|
||||
move 16 from 2 to 4
|
||||
move 11 from 1 to 8
|
||||
move 4 from 5 to 8
|
||||
move 11 from 2 to 6
|
||||
move 2 from 6 to 1
|
||||
move 5 from 9 to 5
|
||||
move 5 from 5 to 6
|
||||
move 5 from 8 to 6
|
||||
move 1 from 6 to 7
|
||||
move 7 from 8 to 1
|
||||
move 12 from 1 to 2
|
||||
move 1 from 9 to 5
|
||||
move 1 from 1 to 3
|
||||
move 1 from 1 to 4
|
||||
move 1 from 5 to 3
|
||||
move 1 from 3 to 6
|
||||
move 1 from 8 to 2
|
||||
move 18 from 6 to 2
|
||||
move 1 from 6 to 2
|
||||
move 2 from 8 to 3
|
||||
move 3 from 3 to 8
|
||||
move 18 from 4 to 9
|
||||
move 11 from 9 to 2
|
||||
move 2 from 9 to 6
|
||||
move 2 from 4 to 1
|
||||
move 1 from 1 to 5
|
||||
move 1 from 5 to 4
|
||||
move 1 from 4 to 8
|
||||
move 42 from 2 to 1
|
||||
move 3 from 9 to 3
|
||||
move 1 from 8 to 1
|
||||
move 1 from 3 to 4
|
||||
move 3 from 8 to 7
|
||||
move 1 from 4 to 1
|
||||
move 2 from 3 to 2
|
||||
move 17 from 1 to 6
|
||||
move 15 from 6 to 3
|
||||
move 2 from 9 to 7
|
||||
move 1 from 3 to 6
|
||||
move 2 from 7 to 6
|
||||
move 2 from 2 to 4
|
||||
move 1 from 2 to 3
|
||||
move 1 from 4 to 9
|
||||
move 1 from 4 to 1
|
||||
move 1 from 6 to 3
|
||||
move 20 from 1 to 9
|
||||
move 6 from 1 to 9
|
||||
move 7 from 9 to 3
|
||||
move 20 from 9 to 1
|
||||
move 1 from 6 to 7
|
||||
move 2 from 6 to 7
|
||||
move 1 from 6 to 5
|
||||
move 1 from 6 to 8
|
||||
move 4 from 7 to 3
|
||||
move 3 from 7 to 2
|
||||
move 1 from 6 to 4
|
||||
move 1 from 2 to 1
|
||||
move 1 from 4 to 9
|
||||
move 21 from 3 to 2
|
||||
move 5 from 3 to 8
|
||||
move 1 from 5 to 1
|
||||
move 2 from 8 to 7
|
||||
move 4 from 8 to 3
|
||||
move 4 from 2 to 5
|
||||
move 19 from 2 to 3
|
||||
move 1 from 9 to 2
|
||||
move 23 from 3 to 2
|
||||
move 2 from 7 to 4
|
||||
move 3 from 5 to 9
|
||||
move 16 from 2 to 1
|
||||
move 1 from 5 to 4
|
||||
move 1 from 9 to 3
|
||||
move 2 from 3 to 8
|
||||
move 3 from 4 to 6
|
||||
move 1 from 6 to 2
|
||||
move 1 from 8 to 6
|
||||
move 5 from 2 to 6
|
||||
move 7 from 6 to 5
|
||||
move 4 from 2 to 6
|
||||
move 6 from 5 to 9
|
||||
move 1 from 8 to 4
|
||||
move 18 from 1 to 9
|
||||
move 1 from 5 to 2
|
||||
move 9 from 9 to 4
|
||||
move 5 from 6 to 3
|
||||
move 9 from 4 to 1
|
||||
move 4 from 9 to 2
|
||||
move 1 from 4 to 8
|
||||
move 1 from 8 to 3
|
||||
move 7 from 1 to 8
|
||||
move 6 from 3 to 2
|
||||
move 10 from 2 to 9
|
||||
move 21 from 1 to 8
|
||||
move 1 from 2 to 8
|
||||
move 19 from 8 to 4
|
||||
move 1 from 8 to 3
|
||||
move 16 from 4 to 8
|
||||
move 1 from 4 to 2
|
||||
move 2 from 1 to 5
|
||||
move 1 from 2 to 3
|
||||
move 1 from 4 to 5
|
||||
move 1 from 4 to 8
|
||||
move 2 from 1 to 3
|
||||
move 3 from 3 to 2
|
||||
move 5 from 9 to 1
|
||||
move 1 from 3 to 4
|
||||
move 4 from 9 to 4
|
||||
move 2 from 1 to 9
|
||||
move 2 from 2 to 5
|
||||
move 1 from 2 to 7
|
||||
move 3 from 1 to 7
|
||||
move 10 from 8 to 6
|
||||
move 4 from 8 to 5
|
||||
move 3 from 4 to 3
|
||||
move 3 from 3 to 4
|
||||
move 1 from 9 to 8
|
||||
move 2 from 7 to 2
|
||||
move 1 from 2 to 1
|
||||
move 4 from 9 to 3
|
1
data/day_6.txt
Normal file
1
data/day_6.txt
Normal file
@@ -0,0 +1 @@
|
||||
llqnqffqsqttfffbcfcbcbdcczccfssvwswrwddzlddpdhdwwlvlffjllnjjwjqwjjttwbwcwfccdmmnddgvvpwvvgsshnshsgglljfjzjpjfpfjpplddjcchdhvhlhvllvflfbllsdllgppwjjprjpjrrdwrdrggjvjppgbgttdppwhhcshsvvgpvggsllstsggdjdmjjrvjjszjsjbbsffjwjnwwzjjjvqvfftbffbpffndfdzfdfvdfdggmpmbbwgbgnnbtnnnhggdmdffrqrlrhrzzrmzzmbzzcdcwwzffsrrnfnvfnnvppwjjndjnndtdppgcppsmppljlpjjmlldlsltlglwgwcwnwvwddzrrllwjjnvjvwvppjssncnfcnfcfcczfccpjphjphjjjsgszzhthghjhrjrbrtrjrhrsrfftfzftfmmwmpmgghbggjrrsdswddtjjvnnrwrzrpzzlglwggrnrgrfftnffwwgllrqqzbqbbtltbbgdgpgphggspggplggmcmscsffzcfzzbggdrgrqgrrnlrnrbnnzsnnzcctvvnvwvnwnhhwpwtptllpflfcfttwtjjhwjhhbwhbbtppwhwvhvghvhphpwwcgwwhbbfvbffzpzlllrzlrrbnnrngrnrpnnsszbbqffpsffhfshfhzzqhhcgcgfggzmmdllthhrhnrrwggdqdsstccqllflmflfddjwjzjffvjjfgjgdgbdgdngnpgpnpffsnsjnnbbjdbjbtbmmbrrlbbqmqpqrprjjrbbvnbbzvvcwwlfwfggmhhdhsdhsdhshhqfhfrhhqlqttffpmmjzjqjggqzzdfzflfsllshhvjvfvbfvbbjljhhzrzqqszqzsqqswswbsbzszgzdgzzhjzhhvffhthvtthltthghzhvvjttczttlssvvgjjmsjstjjrfjjhbjbnjbjddqrddnbdnbnwbnbqbmqqgtgqtttcmmqbqrrgrrsrszssvpsvvjqjttjpjwwmwfwttczttgccwhcwwrzwzbwwqbqmqnmqqnfnmmmzdmzmpmssdpsslbbmgmbmlmnlldlccvzzlrzzqbqfqlflwlvlhhtrtcttgnnqhnqqtjjphjhwjhwhpwwvdvfddmndncnppcffhllfvfdfllhgslvtsqhtlfdflcjfmqbnctnfnwqrlqbzrcbvldrffcptsgslqcszqcfdvtpggvdqblwcgmdjqrpjdhtrmvrfrzznspqlfhnjsppbpjdggcwjwprpnlnntgfgmflctqphdmzfvpzzmbzmvrqdgchzmdvjdzmfsslpqvhpgznmpspjpdmlfwwjbbwqbfthghclldpmnsbcwlzswrsnfzbdzpcnrrpspdpfqhvmtfjlppqtphvzzqrwhzccnrgrtgfbfgtwvlwsmcvzmqmhsvztmmvpjzfwzgfwntbrsfthdgrcmgtdsvzcllmcshrlqldrvrnmdgbwttmhczvscrdvfgdvrhfvlghhsfbmrptbwmpnvtsrjlpjlbmmjzwwzbdtjlqqdczqgpzfjslccrcrblhplndblghchczbjjfzlsvvrqhvgdsncgpjhjlprhfhswwbmrnszqzhhlrbqpphvgtfsgmdpjwgcmqnvfdhrqmbspjpdrtdbqnbmbpgqwgmltqwrjprvsfjsmpldcqqbvmfhgzltzfvhlnfdqrphzzjrbdvnnjspvnlnnsdzvgqsqztndjpmnbqtwnpzmmfhsswwnnwwlbnpgbrhzchbnsrwwpprhntngsjzvssttqwfvjrdddtfpgtqqzcwljzmdjtgzdqjjvbqgdttdgvqvlfdsgcjhsmdmwrwdcqdflpfjbfzsvjrzrhhcnvcjblwcdvtbgfhfgcwrcjsrzcdrfwtvdqrghdtrjgdmhrfcsnwwwdpvjtpzdqfgrlmrqscjbfgdbgvflhvdjmnmslvsbcbgwplgqljmlzpgrfjwmvqfwmwrhnmdjhdwgjrngvccrbzmhcqthvvtdtmfqvfczhqbfgzgrmdtprznfzjtrcwqgztchtdmzmnwbfbnbttbvzsflcpsjshgphfdlvhdrcpsqnhjjggbnsqrfpwsdznzcwjbcswwndzbpdnfcbdrfgrmqzvtjttltbntznmqfsmqlgqvlqnrvgrnggslqhbplmgpzwlfzbvwdvrchsnhrnvgmzjdprvvspltcdzmdnlgtmrwnwpdndpdqjltcnmsggrvbprslqhfgmzqtppdpsjcmmbvfgmbpdnwdcgnssfgjhzhrjljdwhrzznscndgbscdmbbtbrnzbqzvcjgjgljbjlrrvdhjdllsnjzhwlmjslghrqplwjwssbzzpdzdfhhsqctlcddnfnnvbcwpdvzdcsgcqpctsjtdtnzpggpzsrrhfjtthqcqhtvwzltbdvdnbgwlppblwzjsqqbcpcrthhrhdnzhdnflqlvbzmcjfcrbmgdgqptfqfbmlfbblqdfmnwgvbdhmcmtmvtggqstjpwhvzjhbgpblmdrnggvrvphbglqgfcphmrgfmrwcdchtwfllqwsnbqttwdcvrwgzjfztmcffppqtmnwpgcrgwtjbdtjlmnpmvlzndljglzblwdrggqvbbfvqcbcbpqttrmqlcqnqvrfqsnlpmwlcgfwfcqpgmszfccbqtcqfwlwqrjjhrdbjqvdmfzjgncjqgqbthpgjgbfdvltbhpnbjqqwrsczrthfhmlzjjjgsjtsvgmwfsjngzfqdqzfhvwjrswvnqvsvvsjdbwlwdcsszdngmmhnnqsgvsrvpnndghrwgzztqczvhcrzdpqtrmrnfsfrlpdnbbtshfhplzqvdvzdvwhwsbpnbzlvcbgptdszjlcgfdzchjcsvhzdljvgpwstzwnssvhztcptnhslggnrschvfnmhcnjvldthtfpqzdvltfgnmtgvlrljhwqdzqfmfblstvfnpfcdsqslrqbztrbfzmsfjtjwhlzfnhrvpfqfqvtdllrvchmqphgljwcspgpwsdwqfdhsqhsflpbcbjjmjrfjrqrqfqcqzqsqcnqhfgsclfnfzblfdhphrvqdpvcqmllrcdnrlwqbrgqsbfqqllcvmglntjwcsjljgntmmldscndfdjcqpwbqpbmfjsgwfwcqbqbbhhgprlbzmvdfjcsmsqvhfhmgrhnwpslztmwbhdgrfzfcmwjswpbpzwstfbfmgwtprmptzjwtrqthrqwgslnmtlfgnvgpwvsfwthtrgwfbnnnwmdcfrpqqztplscvfnfpfwwdnfnzjccnhswwlcrrdqfhvsrnvcdrwmjswzggscplggbwgndsbntqvtrjbmbzrnbbmdjvwrmmtrmfjjhnvrcjcbqlhlthbvtjjczddblbbttmmzgdqmtdqswjdwbjhsrjbvdtqzqdbhhgbttgmgwfgfpczpqpfsddgslltwsvngwbwfbfcdzlqghwdbfzzldjpwpmpjmslwnwbrjjvwcsjgdzjwrrwnvgvrqlgjhwvrgnczspfplhfbtdpbpfqmhbvmcqdgrrjfslzgsqfpwrrrmjdtgbslddwvddrbmrdsdhhnlwsncrmnglrrpvtbrfvjbdmcpgphcdfwnfcglvmlbslttpmjnspqhnmbcqgmncfjjpdfjqhggnswbgppjhllscrvtmtmmbwbpgddtzblscntrmccdpzdnllqpvfdpfpwwvnnbjlzphvqwffwsjmbtllctrjmllwscmldcdrpfrzrqlpwbjwfgmnshzqzgdjqhcwtsqlsjffvzcpnrzmvtlzlgwvrrjtdbcnddbhjgqqzrvhplrbsrwgscjnfmhbcnpdcjqrltgdzzzzbqtsspbcdssbjrzfqdgvhmgdzsjdsqcfwbgrnhrlzgpjmhctqdccmvqzddmcptsjgtfshprqmslvtmtrprfsngrnnpnrccrvnrvcwzrbbnbghlwvcncgzglnqthchhsnzlfrcggdptvwlrbnfwgjpflgrcfzhhgffwcbhwlsdmvmsvvzvdcrlvlnstgz
|
1047
data/day_7.txt
Normal file
1047
data/day_7.txt
Normal file
File diff suppressed because it is too large
Load Diff
99
data/day_8.txt
Normal file
99
data/day_8.txt
Normal file
@@ -0,0 +1,99 @@
|
||||
222322213033345255533423306545562424165440655115256171674620442636621123532003623343351021112300040
|
||||
110200134424131544435511513034235114207220346712122743100173142606016164253614600344452542043234001
|
||||
130241122341034230060506400411050451436457131115555076655121366640166143420114243260041315245140033
|
||||
044201155341204150154421223651421072455456424262034065175730703125367662022422056423113110423033043
|
||||
341242043015141323013444355403421162464354167412604633147554242145501111651130260045523542142405124
|
||||
104105335542011255154624541673170452421201174751065233125053535203606402110631631303264231443334523
|
||||
022251232401442443240604013073567051751261046006060310057162723056356047312301014332262320405344224
|
||||
005045010303234050011604134516553223421500156708426287011206217044163376565240420066564035322425031
|
||||
433400302252163605112001002152533254526577025774185772532522645162112005222006334211222615202150023
|
||||
514421532420126245053363421750507267400406222575606338538284336516406721212651434025136363121253314
|
||||
145500111514555142462447264776571468434327564631361615475570716477174343523375640422633224154214330
|
||||
450422253465464405163267335560338812657620448402661157163042574016476542116027110002556401004144041
|
||||
315250435323412100266435752414460614818523238015312045767348145251346503446110002404643412031033110
|
||||
335554260614516260275514014501773808684115234652573523444781127146772327147027164546041361322264113
|
||||
552212024666234517403145053462886425015423537515312180012163268455035077313422213613314122403623422
|
||||
554116462330326333717726071743410713076038127356572547895446465004382875747801510560161030046236534
|
||||
105512113261674505476760210308840028176731611387575863387841328453867641286570312570624613101433450
|
||||
201620055416403673411402684861111672134437556816818962692824522386258176417471541216750515352320263
|
||||
100064152502471121126620147804267474177133917793419871348867649139837456117360472552512240365464543
|
||||
434125501030234366461354647212882961264276372277577656415297827484543874788435871670574372006541656
|
||||
354231632241763433421115602887827646148345796776349994375746935256394267608007744846602344220506426
|
||||
320055542235452511286776246551436249838211357522914296165427513242286591157867047217062671166212220
|
||||
630533311432024274286282747578525892839185272964722232382686773975896514921876068064231003115130640
|
||||
054351445323650230374860016787334957865672953893647532392634515193476444753234751431776670673443625
|
||||
122161643553043361465661234215425777375428328842756826885237348622679574815841302214422454334622455
|
||||
310361643547534388254741787957515835394388424384634948237897787328779899668951118145613227272341123
|
||||
553203043313014483116602739588328966436465926583287463393949837268357287783771610187112515346661056
|
||||
361112773030626240167311193287631239264325599932928434546936456455966294955629721437363071113555100
|
||||
223116444062065127823414995768335224963787626949338374537976548374532595386885887817322311512135354
|
||||
165533456256685465133638322212456677839479985883969576788652889447966945526287513125252251227266360
|
||||
050427105764654780569971719539982722683736488643647867988885285677254929533615456260111805471544762
|
||||
612564200420147420768231643572583337363778975687346456978779493453467879471982875321111751612056704
|
||||
154715031561015145153929571787325853755436888933888338496548994492842954225615713257348715562770051
|
||||
042706406641878154761493925944579827297695668447479695968796749364665547438536956376866503052450261
|
||||
111103621158778860687333696596964667768654674764978799646936368489433243322422814121081720104310375
|
||||
256106134082036385674358835842774753667963458466356667369999749769462758256568366264544861030650514
|
||||
412372400235780556155749924663448584664436986744984487994753564686643982758245295828805442657020150
|
||||
316402420685442228837832744963276587378457659649458546869353576749393683736838444639170007152747441
|
||||
343664452531110164851537867349623666557879764884856546986489797534353938689749649842383748067621444
|
||||
004444326256452015911854963372679986857738459895764946977798848396957278774226377383181551011246332
|
||||
324213275444575144439872496886847394968576968689979497664689986774356463883323582931740408774664723
|
||||
167274127524542565635816457474433733785665667989859545577574597555588393452438866921746374545730347
|
||||
312523103467383946589439238265777486435445747964954446957896799994745579737227145455742444466763354
|
||||
042101230038108485461717949225836749699798599445858954785786668636987937236256346361252208168136312
|
||||
447311762287744692475573737395565466544999496459956989976897778946499374824747773197595161266172226
|
||||
371671376376358926187663595697867739555794587855655786889854499686796363666939989643254552166201754
|
||||
305514713774776948141752365256767736786987588655596589796495868756859657723267975757697551713050730
|
||||
505672367783107579727693596546487757757799568755578685859899884563658799498726941257953878711714017
|
||||
457520154136801497456138426564536866785654498777579675857476597474753988679778543462582232418154231
|
||||
050570576377124118562748278969974597659546757999795788577798949457569458597349739399679324147816176
|
||||
064032506374261599382993468784374444687579995969557585785777758755334674823733669516557164016427124
|
||||
346565566106489839877287435227877647875697657779798687889989777455747976752522588271842557284604304
|
||||
320630184267887846149779595575797453867985966985895787576699496556963977669453525683498188461017663
|
||||
155470636481748966932554775295985386984477788779777769886686888674939686949557211549684318562843364
|
||||
355422032736165249425585822655654853976657576675655856568867858693534395443986997713966364825241516
|
||||
014307615355116598362643769888978393745848466775686878856446548776874844332797955528420388441472072
|
||||
434677415171655145937867232795798374659889895676897986696777754584999873398343952258322518308312370
|
||||
614462625176544968398772979677993886597595888444699849445968855456666794598363878647397472370611124
|
||||
342426038105820512291673236242588648634466744646845777477557645589764482986857645122398666420720742
|
||||
303446222610437533389493227477389695959868644577787974876888684975836425953723362621837202318302515
|
||||
101334031274541867475755424764549646588488959767847459756867963388465874367294735519312864601156672
|
||||
311162646802122687272848655359448638774475595989694889897479694563583798875942767189780830474311553
|
||||
670525052313105734222877229995545497896735689799858955459867784679684938565425586596166033035473164
|
||||
625002126405824409197545328243248943664786877896564684896757759666544465836966863943043883874535107
|
||||
304504507410725215339562444778866968394554865956559998446945777964348595952748915112623570510705144
|
||||
447671532535258771129625534992686968475466769559485845995386695599378847572918425825332176641466062
|
||||
022123400381035622672492659655854245887594385374756573547685957733982636227675215225616456802746606
|
||||
143231134353837650051751146983252488977634698367786398395985875992826958228379769214124442703715262
|
||||
135170610171160182526139534726928582959959837673658879565485535346824864319872955144130017452466064
|
||||
102646524660025304032183156274795333553888848798733487439766887562335538983732625811202053035706412
|
||||
105313211023023674376715267861525696823925879646687867997695888347896781494452164804031634615425042
|
||||
256205106513734680231582333362957987973927998375834773457684994689349817858524813244430142704015520
|
||||
021404347726028733646641268434424287525532769279452643745555528837589599615841240070086220361652546
|
||||
224024214320367157758819746327682985953929797339659337579259325447482167689237531580534124157434533
|
||||
432614136036164731080370551893833148799729789672732794952993828437433612152513202747342230044776363
|
||||
314003554513122735473322134512738781597463362529856243299295546734985494922406881657630707442021510
|
||||
514504073756450312710340856355119778239528232648473554453443349559599228483527304806846455610024545
|
||||
424156167665132531871223763346631626522767446256444526857773846279396461782420177025261412610600431
|
||||
440544203354025350033001226782826234581598745799586998494951719551921447963680834604761003456033433
|
||||
030261134056327505538138763401733512835785873969133667323138843188738957384853306401550446745105426
|
||||
524041041607103210643621736677777415881386586134322795167285489925353353273682055677320161701632002
|
||||
532513043015722226170325461521708421659348265984277116386737884679183833325305770247107056515000632
|
||||
450631113064541102213228045638208741315429696459599317816954821479256672633762880514531576001505104
|
||||
214165164302237003505054233882824157688219632493411326562973319962407073638136757124756516600661503
|
||||
304465104303261562212345808766401574871933592693641614758134144886301815682807153126027453244204015
|
||||
135203445204521251600013125103586202465438696331861292616228156657585723603452536740112103314030555
|
||||
514516400551406327564011243567833388064737417461387480870726483204868682076024701011125332602254113
|
||||
421341053633214625706123464303687686511262673301412775315212752511877023033424215721261615303053012
|
||||
022044105062611536144720566574153723272833357078078000286705430350220142407371067103103416226230555
|
||||
410213236064223263635201443404636873030520630316216081306535811175741246467466645353201136163050545
|
||||
303520211553166661506232367472736401455544832872162057805076267517121166516261355403030034621243454
|
||||
203254222143353045650002244735005340271145025041572764542706827413452562704066262265323455430133504
|
||||
441232355335366123446141420412727113134404853821274587121188823260264625415453362560311464455210441
|
||||
414115054424201303442043777071262633223473236654360080370734624214365605172654033011620153152523134
|
||||
412115334452334460565220356727405160520263276133202400177553665136056247040612461135000421154322204
|
||||
041335455114425155032554320512112112454416721273507036712353407602170012763156424133043141034050241
|
||||
030023102524414043125455041405115606664661260240725146305660271437703406461522205621551001134541002
|
||||
404443532404034526430106366644217325436253634242603222554235163606432511155652343363021250505540430
|
||||
324114252001344342204144440320420641222766650735522654115551234652234245431600152550532022520100132
|
2000
data/day_9.txt
Normal file
2000
data/day_9.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -13,7 +13,7 @@ cals_per_elf() {
|
||||
((tmp+=i))
|
||||
done
|
||||
cals+=("$tmp")
|
||||
utils.insertion_sort cals
|
||||
utils.timsort cals
|
||||
echo "${cals[@]}"
|
||||
}
|
||||
|
||||
|
53
src/day_10.jl
Normal file
53
src/day_10.jl
Normal file
@@ -0,0 +1,53 @@
|
||||
include(joinpath(readchomp(`git rev-parse --show-toplevel`), "aoc.jl"))
|
||||
import .Aoc: @aoc
|
||||
|
||||
function p1(input::Vector{String})
|
||||
x = 1
|
||||
cycles = []
|
||||
for i in input
|
||||
if i == "noop"
|
||||
push!(cycles, x)
|
||||
else
|
||||
num = parse(Int, split(i)[2])
|
||||
push!(cycles, x)
|
||||
push!(cycles, x)
|
||||
x += num
|
||||
end
|
||||
end
|
||||
sum = 0
|
||||
for i in 20:40:220
|
||||
sum += cycles[i] * i
|
||||
end
|
||||
sum
|
||||
end
|
||||
|
||||
|
||||
function p2(input::Vector{String})
|
||||
x = 1
|
||||
cycles = []
|
||||
for i in input
|
||||
if i == "noop"
|
||||
push!(cycles, x)
|
||||
else
|
||||
num = parse(Int, split(i)[2])
|
||||
push!(cycles, x)
|
||||
push!(cycles, x)
|
||||
x += num
|
||||
end
|
||||
end
|
||||
cycle = 0
|
||||
while cycle < length(cycles)
|
||||
x = cycles[cycle+1]
|
||||
if abs(x - (cycle%40)) < 2
|
||||
print("#")
|
||||
else
|
||||
print(".")
|
||||
end
|
||||
cycle+=1
|
||||
if cycle % 40 == 0
|
||||
print("\n")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@aoc(2022, 10)
|
94
src/day_11.jl
Normal file
94
src/day_11.jl
Normal file
@@ -0,0 +1,94 @@
|
||||
include(joinpath(readchomp(`git rev-parse --show-toplevel`), "aoc.jl"))
|
||||
import .Aoc: @aoc
|
||||
|
||||
function parse_monkeys(input::Vector{String})
|
||||
curr_monkey = -1
|
||||
monkeys = Dict()
|
||||
ops = Dict()
|
||||
tests = Dict()
|
||||
conditions = Dict()
|
||||
for i in input
|
||||
line = strip(i)
|
||||
if line == ""
|
||||
continue
|
||||
end
|
||||
if line[1:6] == "Monkey"
|
||||
curr_monkey += 1
|
||||
continue
|
||||
end
|
||||
if line[1:8] == "Starting"
|
||||
items = split(line, ':')[2]
|
||||
items = split(items, ',')
|
||||
items = map((x) -> parse(Int, strip(x)), items)
|
||||
monkeys[curr_monkey] = items
|
||||
continue
|
||||
end
|
||||
if line[1:9] == "Operation"
|
||||
op = strip(split(line, '=')[2])
|
||||
op = split(op)
|
||||
ops[curr_monkey] = op
|
||||
continue
|
||||
end
|
||||
if line[1:4] == "Test"
|
||||
div_by = parse(Int, split(line)[end])
|
||||
tests[curr_monkey] = [div_by]
|
||||
continue
|
||||
end
|
||||
if line[1:2] == "If"
|
||||
to = parse(Int, split(line)[end])
|
||||
push!(tests[curr_monkey], to)
|
||||
continue
|
||||
end
|
||||
end
|
||||
(monkeys, ops, tests, conditions)
|
||||
end
|
||||
|
||||
function run(turns, monkeys, ops, tests, conditions, worry_level_fn)
|
||||
inspects = Dict()
|
||||
|
||||
for turn in 1:turns
|
||||
for m in 0:length(keys(monkeys))-1
|
||||
while length(monkeys[m]) > 0
|
||||
if haskey(inspects, m)
|
||||
inspects[m] += 1
|
||||
else
|
||||
inspects[m] = 1
|
||||
end
|
||||
wl = popfirst!(monkeys[m])
|
||||
op = ops[m]
|
||||
operand1 = op[1] == "old" ? wl : parse(Int, op[1])
|
||||
operand2 = op[3] == "old" ? wl : parse(Int, op[3])
|
||||
operator = op[2]
|
||||
wl = eval(Meta.parse("$operand1 $operator $operand2"))
|
||||
wl = worry_level_fn(wl)
|
||||
if wl % tests[m][1] == 0
|
||||
push!(monkeys[tests[m][2]], wl)
|
||||
else
|
||||
push!(monkeys[tests[m][3]], wl)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
inspects
|
||||
end
|
||||
|
||||
function p1(input::Vector{String})
|
||||
monkeys, ops, tests, conditions = parse_monkeys(input)
|
||||
inspections = run(20, monkeys, ops, tests, conditions, x -> x % 3)
|
||||
res = sort(collect(values(inspections)))[end-1:end]
|
||||
res[1] * res[2]
|
||||
end
|
||||
|
||||
|
||||
function p2(input::Vector{String})
|
||||
monkeys, ops, tests, conditions = parse_monkeys(input)
|
||||
lcm = 1
|
||||
for i in values(tests)
|
||||
lcm *= i[1]
|
||||
end
|
||||
inspections = run(10000, monkeys, ops, tests, conditions, x -> x % lcm)
|
||||
res = sort(collect(values(inspections)))[end-1:end]
|
||||
res[1] * res[2]
|
||||
end
|
||||
|
||||
@aoc(2022, 11)
|
47
src/day_12.jl
Normal file
47
src/day_12.jl
Normal file
@@ -0,0 +1,47 @@
|
||||
include(joinpath(readchomp(`git rev-parse --show-toplevel`), "aoc.jl"))
|
||||
import .Aoc: @aoc
|
||||
using Graphs
|
||||
|
||||
directions = [(1, 0), (-1, 0), (0, 1), (0, -1)]
|
||||
|
||||
function build_graph(input::Vector{String})
|
||||
grid = hcat(collect.(input)...)
|
||||
|
||||
start = findfirst(==('S'), grid)
|
||||
dest = findfirst(==('E'), grid)
|
||||
grid[start] = 'a'
|
||||
grid[dest] = 'z'
|
||||
|
||||
grid = map(x -> x - 'a', grid)
|
||||
graph = SimpleDiGraph(length(grid))
|
||||
|
||||
for (i, h) in enumerate(grid)
|
||||
ic = CartesianIndices(grid)[i]
|
||||
|
||||
neighs = map(x -> ic + CartesianIndex(x), directions)
|
||||
for d in filter(x -> checkbounds(Bool, grid, x), neighs)
|
||||
if grid[d] <= h+1
|
||||
add_edge!(graph, i, LinearIndices(grid)[d])
|
||||
end
|
||||
end
|
||||
end
|
||||
(start, dest, grid, graph)
|
||||
end
|
||||
|
||||
function p1(input::Vector{String})
|
||||
start, dest, grid, graph = build_graph(input)
|
||||
|
||||
solution = dijkstra_shortest_paths(graph, LinearIndices(grid)[start])
|
||||
solution.dists[LinearIndices(grid)[dest]]
|
||||
end
|
||||
|
||||
|
||||
function p2(input::Vector{String})
|
||||
start, dest, grid, graph = build_graph(input)
|
||||
sources = findall(==(0), grid)
|
||||
|
||||
solution = dijkstra_shortest_paths(graph, map(x -> LinearIndices(grid)[x], sources))
|
||||
solution.dists[LinearIndices(grid)[dest]]
|
||||
end
|
||||
|
||||
@aoc(2022, 12)
|
54
src/day_2.sh
Normal file
54
src/day_2.sh
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
unset PATH
|
||||
BASE='.*';until [[ "$(eval "echo $BASE")" =~ \.git ]]; do BASE="../$BASE"; done;BASE="${BASE/'*'}"
|
||||
source "$BASE/utils.sh"
|
||||
|
||||
INPUT="$(<"$BASE/data/day_2.txt")"
|
||||
|
||||
declare -A COMBINATION_TO_POINTS=(
|
||||
['A X']=3
|
||||
['A Y']=6
|
||||
['A Z']=0
|
||||
['B X']=0
|
||||
['B Y']=3
|
||||
['B Z']=6
|
||||
['C X']=6
|
||||
['C Y']=0
|
||||
['C Z']=3
|
||||
)
|
||||
|
||||
declare -A SHOULD_PLAY=(
|
||||
['A X']=Z
|
||||
['A Y']=X
|
||||
['A Z']=Y
|
||||
['B X']=X
|
||||
['B Y']=Y
|
||||
['B Z']=Z
|
||||
['C X']=Y
|
||||
['C Y']=Z
|
||||
['C Z']=X
|
||||
)
|
||||
|
||||
declare -A SCORES=([X]=1 [Y]=2 [Z]=3)
|
||||
|
||||
p1() {
|
||||
mapfile -t scores <<< "$(
|
||||
while read -r i; do
|
||||
echo $(( COMBINATION_TO_POINTS[$i] + SCORES[${i:2}] ))
|
||||
done <<< "$1"
|
||||
)"
|
||||
utils.sum "${scores[@]}"
|
||||
}
|
||||
|
||||
p2() {
|
||||
mapfile -t scores <<< "$(
|
||||
while read -r i; do
|
||||
i="${i::1} ${SHOULD_PLAY["$i"]}"
|
||||
echo $(( COMBINATION_TO_POINTS[$i] + SCORES[${i:2}] ))
|
||||
done <<< "$1"
|
||||
)"
|
||||
utils.sum "${scores[@]}"
|
||||
}
|
||||
|
||||
p1 "$INPUT"
|
||||
p2 "$INPUT"
|
14
src/day_3.jl
Normal file
14
src/day_3.jl
Normal file
@@ -0,0 +1,14 @@
|
||||
include(joinpath(readchomp(`git rev-parse --show-toplevel`), "aoc.jl"))
|
||||
import .Aoc: @aoc
|
||||
|
||||
priority = ['a':'z'; 'A':'Z']
|
||||
|
||||
function p1(input::Vector{String})
|
||||
sum([ findfirst(==(intersect(i[begin:sizeof(i)÷2], i[sizeof(i)÷2+1:end])[1]), priority) for i in input ])
|
||||
end
|
||||
|
||||
function p2(input::Vector{String})
|
||||
sum([ findfirst(==(foldl(intersect, input[i:i+2])[1]), priority) for i in 1:3:length(input) ])
|
||||
end
|
||||
|
||||
@aoc(2022, 3)
|
18
src/day_4.jl
Normal file
18
src/day_4.jl
Normal file
@@ -0,0 +1,18 @@
|
||||
include(joinpath(readchomp(`git rev-parse --show-toplevel`), "aoc.jl"))
|
||||
import .Aoc: @aoc
|
||||
|
||||
function assignment_pairs(λ, line)
|
||||
a, b = split(line, ',')
|
||||
s1,e1,s2,e2 = parse.(Int,[split(a, '-'); split(b, '-')])
|
||||
λ(s1:e1, s2:e2)
|
||||
end
|
||||
|
||||
function p1(input::Vector{String})
|
||||
count(map((x) -> assignment_pairs((a, b) -> (a ⊆ b || b ⊆ a), x), input))
|
||||
end
|
||||
|
||||
function p2(input::Vector{String})
|
||||
count(map((x) -> assignment_pairs((a, b) -> length(intersect(a, b)) > 0, x), input))
|
||||
end
|
||||
|
||||
@aoc(2022, 4)
|
39
src/day_5.jl
Normal file
39
src/day_5.jl
Normal file
@@ -0,0 +1,39 @@
|
||||
include(joinpath(readchomp(`git rev-parse --show-toplevel`), "aoc.jl"))
|
||||
import .Aoc: @aoc
|
||||
|
||||
function parse_input(input)
|
||||
separator = findfirst(==(""), input)
|
||||
num_stacks = length(unique(input[separator-1])) - 1
|
||||
stacks = [ [] for _ in 1:num_stacks ]
|
||||
instructions = [ parse.(Int, [ i.match for i in eachmatch(r"\d+", instr)]) for instr in input[separator+1:end] ]
|
||||
|
||||
for i in separator-2:-1:1
|
||||
line = input[i]
|
||||
while true
|
||||
col = findlast(isletter, line)
|
||||
(col == nothing) && break
|
||||
index = Int(round(col/4, RoundUp))
|
||||
push!(stacks[index], line[col])
|
||||
line = line[begin:col-2]
|
||||
end
|
||||
end
|
||||
(stacks, instructions)
|
||||
end
|
||||
|
||||
function solve(λ, input)
|
||||
stacks, instructions = parse_input(input)
|
||||
for (c,f,t) in instructions
|
||||
append!(stacks[t],λ([pop!(stacks[f]) for _ in 1:c ]))
|
||||
end
|
||||
join(map(pop!, stacks))
|
||||
end
|
||||
|
||||
function p1(input::Vector{String})
|
||||
solve((x) -> x, input)
|
||||
end
|
||||
|
||||
function p2(input::Vector{String})
|
||||
solve(reverse, input)
|
||||
end
|
||||
|
||||
@aoc(2022, 5)
|
24
src/day_6.jl
Normal file
24
src/day_6.jl
Normal file
@@ -0,0 +1,24 @@
|
||||
include(joinpath(readchomp(`git rev-parse --show-toplevel`), "aoc.jl"))
|
||||
import .Aoc: @aoc
|
||||
|
||||
function sliding(in, w::Int64; step::Int = 1)
|
||||
((@view in[i:i+w-1]) for i in 1:step:length(in)-w+1)
|
||||
end
|
||||
|
||||
function find_packet_start(buffer, len)
|
||||
counter = 0
|
||||
for window in sliding(buffer, len)
|
||||
length(unique(window)) == len && (return counter + len)
|
||||
counter += 1
|
||||
end
|
||||
end
|
||||
|
||||
function p1(input::Vector{String})
|
||||
find_packet_start(input[begin], 4)
|
||||
end
|
||||
|
||||
function p2(input::Vector{String})
|
||||
find_packet_start(input[begin], 14)
|
||||
end
|
||||
|
||||
@aoc(2022, 6)
|
65
src/day_7.jl
Normal file
65
src/day_7.jl
Normal file
@@ -0,0 +1,65 @@
|
||||
include(joinpath(readchomp(`git rev-parse --show-toplevel`), "aoc.jl"))
|
||||
import .Aoc: @aoc
|
||||
|
||||
function size_of_dir(dirs::Dict{String, Int}, subdirs::Dict{String, Array{String}}, dir::String)
|
||||
size = dirs[dir]
|
||||
for sub in subdirs[dir]
|
||||
sub in keys(dirs) && (size += size_of_dir(dirs, subdirs, sub))
|
||||
end
|
||||
size
|
||||
end
|
||||
|
||||
function join_path(s1, s2)
|
||||
s2 == ".." ? join(split(s1, '/')[begin:end-1], '/') : s1 * '/' * s2
|
||||
end
|
||||
|
||||
function build_dirs(input::Vector{String})
|
||||
dirs = Dict{String, Int}()
|
||||
subdirs = Dict{String, Array{String}}()
|
||||
pwd = ""
|
||||
|
||||
for i in input
|
||||
if i[1] == '$'
|
||||
cmd = split(i[3:end])
|
||||
if cmd[1] == "cd"
|
||||
pwd = cmd[2] == "/" ? "/" : join_path(pwd, cmd[2])
|
||||
if pwd ∉ keys(dirs)
|
||||
dirs[pwd] = 0
|
||||
subdirs[pwd] = []
|
||||
end
|
||||
end
|
||||
else
|
||||
size, name = split(i)
|
||||
if size == "dir"
|
||||
push!(subdirs[pwd], join_path(pwd, name))
|
||||
else
|
||||
dirs[pwd] += parse(Int, size)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
(dirs, subdirs)
|
||||
end
|
||||
|
||||
function p1(input::Vector{String})
|
||||
dirs, subdirs = build_dirs(input)
|
||||
total = 0
|
||||
for dir in keys(dirs)
|
||||
size = size_of_dir(dirs, subdirs, dir)
|
||||
size <= 100000 && (total+=size)
|
||||
end
|
||||
total
|
||||
end
|
||||
|
||||
function p2(input::Vector{String})
|
||||
dirs, subdirs = build_dirs(input)
|
||||
free = 70000000 - size_of_dir(dirs, subdirs, "/")
|
||||
res = 0
|
||||
for dir in keys(dirs)
|
||||
size = size_of_dir(dirs, subdirs, dir)
|
||||
(free + size >= 30000000) && (res == 0 || res > size) && (res=size)
|
||||
end
|
||||
res
|
||||
end
|
||||
|
||||
@aoc(2022, 7)
|
69
src/day_8.jl
Normal file
69
src/day_8.jl
Normal file
@@ -0,0 +1,69 @@
|
||||
include(joinpath(readchomp(`git rev-parse --show-toplevel`), "aoc.jl"))
|
||||
import .Aoc: @aoc
|
||||
|
||||
directions() = [[-1, 0], [1, 0], [0, -1], [0, 1]]
|
||||
|
||||
parse_grid(input::Vector{String}) = [ parse.(Int, collect(i)) for i in input]
|
||||
|
||||
function visible()
|
||||
end
|
||||
|
||||
function p1(input::Vector{String})
|
||||
grid = parse_grid(input)
|
||||
xlen = length(grid)
|
||||
ylen = length(grid[1])
|
||||
visible = 0
|
||||
|
||||
for x in 1:xlen, y in 1:ylen
|
||||
if (x == 1 || x == xlen || y == 1 || y == ylen)
|
||||
visible += 1
|
||||
continue
|
||||
end
|
||||
curr = grid[x][y]
|
||||
tops = map((x) -> x[y], grid[begin:x-1])
|
||||
btms = map((x) -> x[y], grid[x+1:end])
|
||||
lefts = grid[x][begin:y-1]
|
||||
rights = grid[x][y+1:end]
|
||||
if curr > maximum(tops)
|
||||
visible += 1
|
||||
continue
|
||||
elseif curr > maximum(btms)
|
||||
visible += 1
|
||||
continue
|
||||
elseif curr > maximum(lefts)
|
||||
visible += 1
|
||||
continue
|
||||
elseif curr > maximum(rights)
|
||||
visible += 1
|
||||
continue
|
||||
end
|
||||
end
|
||||
visible
|
||||
end
|
||||
|
||||
function p2(input::Vector{String})
|
||||
grid = parse_grid(input)
|
||||
xlen = length(grid)
|
||||
ylen = length(grid[1])
|
||||
res = 0
|
||||
|
||||
for x in 1:xlen, y in 1:ylen
|
||||
tmp = 1
|
||||
for (i, j) in directions()
|
||||
curr = 0
|
||||
dx = x + i
|
||||
dy = y + j
|
||||
while 0 < dx <= xlen && 0 < dy <= ylen
|
||||
curr += 1
|
||||
(grid[dx][dy] >= grid[x][y]) && (break)
|
||||
dx += i
|
||||
dy += j
|
||||
end
|
||||
tmp*=curr
|
||||
end
|
||||
res = max(res, tmp)
|
||||
end
|
||||
res
|
||||
end
|
||||
|
||||
@aoc(2022, 8)
|
58
src/day_9.jl
Normal file
58
src/day_9.jl
Normal file
@@ -0,0 +1,58 @@
|
||||
include(joinpath(readchomp(`git rev-parse --show-toplevel`), "aoc.jl"))
|
||||
import .Aoc: @aoc
|
||||
|
||||
offsets = Dict('L' => (-1, 0), 'R' => (1, 0), 'U' => (0, 1), 'D' => (0, -1))
|
||||
|
||||
function p1(input::Vector{String})
|
||||
headx, heady = (0,0)
|
||||
tailx, taily = (0,0)
|
||||
map = Dict((0,0) => true)
|
||||
for i in input
|
||||
x, y = offsets[i[1]]
|
||||
for _ in 1:parse(Int, split(i)[2])
|
||||
headx += x
|
||||
heady += y
|
||||
while max(abs(tailx - headx), abs(taily - heady)) > 1
|
||||
if abs(tailx - headx) > 0
|
||||
tailx += headx > tailx ? 1 : -1
|
||||
end
|
||||
if abs(taily - heady) > 0
|
||||
taily += heady > taily ? 1 : -1
|
||||
end
|
||||
map[(tailx, taily)] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
length(keys(map))
|
||||
end
|
||||
|
||||
function p2(input::Vector{String})
|
||||
rope = [ [0, 0] for _ in 1:10 ]
|
||||
map = Dict((0,0) => true)
|
||||
for i in input
|
||||
x, y = offsets[i[1]]
|
||||
for _ in 1:parse(Int, split(i)[2])
|
||||
head = rope[1]
|
||||
rope[1] = [head[1] + x, head[2] + y]
|
||||
|
||||
for ri in 2:10
|
||||
prevx, prevy = rope[ri-1]
|
||||
currx, curry = rope[ri]
|
||||
while max(abs(currx - prevx), abs(curry - prevy)) > 1
|
||||
if abs(currx - prevx) > 0
|
||||
currx += prevx > currx ? 1 : -1
|
||||
end
|
||||
if abs(curry - prevy) > 0
|
||||
curry += prevy > curry ? 1 : -1
|
||||
end
|
||||
end
|
||||
rope[ri] = [currx, curry]
|
||||
end
|
||||
last = rope[end]
|
||||
map[(last[1], last[2])] = true
|
||||
end
|
||||
end
|
||||
length(keys(map))
|
||||
end
|
||||
|
||||
@aoc(2022, 9)
|
12
utils.sh
12
utils.sh
@@ -3,10 +3,11 @@
|
||||
_int.insertion_sort() {
|
||||
local -n _int_isort_arr="$1"
|
||||
local left="$2" right="$3"
|
||||
local i=0 j=0
|
||||
|
||||
for (( i=left+1; i<=right; i+=1 )) do
|
||||
local value="${_int_isort_arr["$i"]}" j=$((i-1))
|
||||
while (( j>=left && "${_int_isort_arr["$j"]}" > value )); do
|
||||
while (( j>=left && _int_isort_arr[j] > value )); do
|
||||
_int_isort_arr[$((j+1))]="${_int_isort_arr["$j"]}"
|
||||
((j-=1))
|
||||
done
|
||||
@@ -66,17 +67,16 @@ utils.timsort() {
|
||||
local -n _utils_timsort_arr="$1"
|
||||
local len="${#_utils_timsort_arr[@]}"
|
||||
local min_run="$(_int.min_run "$len")"
|
||||
echo >&2 $len
|
||||
local i=0 j=0 size=0 left=0 mid=0 right=0
|
||||
|
||||
for (( i=0; i < len; i+=min_run )); do
|
||||
echo >&2 _int.insertion_sort _utils_timsort_arr "$i" "$(utils.min2 "$((i+min_run-1))" "$((len-1))")"
|
||||
_int.insertion_sort _utils_timsort_arr "$i" "$(utils.min2 "$((i+min_run-1))" "$((len-1))")"
|
||||
done
|
||||
|
||||
for (( size=min_run; size < len; size=2*size )); do
|
||||
for (( size=min_run; size < len; size*=2 )); do
|
||||
for (( left=0; left < len; left+=2*size )); do
|
||||
local mid=$((left+size-1))
|
||||
local right=$(utils.min2 "$((left+2*size-1))" "$((len-1))")
|
||||
mid=$((left+size-1))
|
||||
right=$(utils.min2 "$((left+2*size-1))" "$((len-1))")
|
||||
if (( mid < right )); then
|
||||
_int.merge _utils_timsort_arr "$left" "$mid" "$right"
|
||||
fi
|
||||
|
Reference in New Issue
Block a user