initial commit, includes days 1 and 2 solutions

This commit is contained in:
Stephen Waits committed 2020-12-02 15:21:56 -08:00
commit 71e7c5e90d
11 files changed
+1401

No files matched your search

+1
View File
@@ -0,0 +1 @@
/target
Generated
+63
View File
@@ -0,0 +1,63 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "aho-corasick"
version = "0.7.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
dependencies = [
"memchr",
]
[[package]]
name = "anyhow"
version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf8dcb5b4bbaa28653b647d8c77bd4ed40183b48882e130c1f1ffb73de069fd7"
[[package]]
name = "aoc2020"
version = "0.1.0"
dependencies = [
"anyhow",
"regex",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "memchr"
version = "2.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
[[package]]
name = "regex"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
"thread_local",
]
[[package]]
name = "regex-syntax"
version = "0.6.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
[[package]]
name = "thread_local"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
dependencies = [
"lazy_static",
]
+11
View File
@@ -0,0 +1,11 @@
[package]
name = "aoc2020"
version = "0.1.0"
authors = ["Stephen Waits <swaits@amazon.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0"
regex = "1"
+200
View File
@@ -0,0 +1,200 @@
1895
1504
1660
1775
1743
1607
1267
1133
292
1646
1285
1808
1512
1839
1869
1578
1318
1385
1829
1800
1491
1600
1290
1856
1781
1881
1953
2008
1681
1472
1846
2010
1619
1584
1849
1876
1744
1980
1421
911
1308
1762
1398
1470
1974
1902
1985
2001
1926
1374
1678
1523
1894
1597
1778
1940
1362
1613
1629
1473
1633
1867
1838
1931
1850
1776
1689
1311
1947
1988
1779
1381
1683
1677
1675
1587
767
1401
1412
1544
1484
618
1755
1073
1970
1735
1770
1623
1665
1783
1400
1892
1921
1506
1978
1731
1739
1515
1354
1264
1394
1763
1569
1453
1539
2006
1586
1855
1609
1729
1624
506
1668
1803
1486
1767
1720
1753
1994
1718
1922
1314
1250
1516
1546
1625
1708
1286
1993
1785
491
1705
1924
1752
1888
1651
1604
1750
1547
1481
1704
1851
904
1920
1939
1277
1870
1934
1617
1833
1797
1817
1967
1935
1914
1621
1468
1859
1552
1640
1709
1121
1973
1343
1266
1806
1360
1299
1990
1356
1631
1555
1811
1323
1794
1550
1448
1848
1826
1723
1891
1302
1655
947
1580
1908
1641
1816
1701
1871
1588
1843
1643
1893
1866
1628
1417
1795
1995
1937
+1000
View File
@@ -0,0 +1,1000 @@
4-8 n: dnjjrtclnzdnghnbnn
5-6 r: rrrrcqr
2-4 p: pqhpppwpfmr
1-13 p: spppppppppppvp
5-6 x: xfwxxxxx
19-20 n: nnnnsnnnnnnnnnnnnnnn
1-4 z: zvzhbp
5-6 d: ddddhd
13-17 j: jjjjjjjjjjjtdrjjgj
1-16 p: tppqpppppppppcpspppp
15-16 r: rrzrsrrrprqrrrmdrrr
1-5 z: lqzdzqfz
1-18 s: nssssssslsssslshssx
1-12 p: gppppppppppppp
3-9 j: wfjtzbzzjtjwm
13-14 c: pjwhnjmgkgtpmcprbrch
5-10 l: glltvgdngllzlllplrlh
3-14 j: fdqhrzgcqvhvjjtvcx
11-14 g: ggggggggggzggb
1-5 w: wwwswwwvw
14-18 f: ffffffffmffffzfffwf
8-14 g: fgggzggmggggzmg
3-4 k: kbkkwthmc
6-11 k: kkkkkkkkkkkk
3-4 x: kxxx
6-8 r: rrrrrcrwkr
7-10 g: gxgqggkfgggfg
4-5 x: xxgxx
1-7 d: ddzczddd
6-12 f: fflffffffvrffflwfv
9-11 m: mrmvtmmmvqsmmxjmf
6-9 m: fnmjmmmmhmjtm
14-16 n: nnnxnnnnnnnnnnnh
1-16 h: xhhhhhlhhhhhhhhjhhh
2-5 g: hhgvpg
5-13 j: gtjbzlbjjjzhk
8-10 k: khkkkknkkknkk
6-7 h: hhhlhhhcnhghc
11-14 s: sssssssssvjssvssxss
6-7 z: zzzzzzz
9-11 j: jfjqjjjjjjjjs
5-12 m: vdmxclfpmmhmmgdffd
1-2 w: wzww
11-15 k: wbkkrmjkkzrxdkt
10-13 m: nmmmmtmsdmmmm
8-12 v: hwrfvlvvnmgv
9-10 q: qqqqqqqmqqlq
4-5 g: ggggggg
8-9 b: bnvfbbbpbbbsnwrbb
2-8 l: hjllblkl
4-14 z: hktzkqsjzzhlfmqghmt
11-13 j: jmjjjjjfjjjjjj
1-6 z: zvhhhzzxqzgzjqz
4-7 z: zqqzflzdckzztf
15-18 d: ddddddnqddvdddwddd
9-13 n: nhnnnnnnnnnnnnn
5-6 b: bbbbbb
6-8 t: ttqtrltb
2-3 x: qxkf
11-16 c: cmcpnzgckzczwvjfpj
5-10 s: pjlsksssdssss
1-3 w: vwdww
1-2 d: wndd
2-4 r: rfrsrrrr
1-3 z: npmh
12-17 h: hhhhchhkhhxcrbdhmhf
12-14 f: fffffzfmffffctf
5-17 b: bbbbbbmbkbbbbbbbbbb
2-4 n: ljnrn
6-8 r: rrkcrrrjb
1-8 l: vllllllllll
7-13 p: pppqxpppppppppp
3-8 s: gsssbsssgsfj
3-10 q: bvljgzpjhkhz
1-9 r: rdrpprgrjrr
10-16 n: sbnnhbrpnnmlnntn
8-10 g: gvggggvgwgg
7-9 m: mmmmmmmvrm
12-17 s: scssssscbssssssss
17-19 b: bbbbbbbbbbbbbbbbmbl
8-12 h: hhhhwhhhhhhhh
2-11 r: rrrrrrrrrrf
3-6 j: jkskqjw
2-7 f: fffftffff
4-6 s: fnssksssw
4-5 b: bbbbv
1-2 q: vgwmtzlmqqtgdgftjl
1-5 s: sfsdsss
3-9 p: qtfkfkzjl
5-10 j: zhsjsjnjjt
2-8 p: pppbppjpt
4-11 d: ddmddfdphdl
2-5 j: jjrsj
3-7 g: gggkgsjpg
3-4 j: jjkvjxjjj
2-3 v: hvvvv
7-13 d: ddddbddddddddddddd
6-8 d: dddddfmd
17-20 c: cccccccccgccccjcxcpk
2-3 g: cggdzjctdxgrl
13-15 r: dqrrrrrrrrrrrgrrprr
2-4 q: zqqq
1-6 l: llljll
3-7 v: vjbkvvzvv
14-18 h: hhhhhhhhshhhhkhhhj
6-10 z: zzzzzzzzzzz
4-5 w: tqwww
8-12 j: jjjjjjjjnjjj
5-15 t: bttjhtwttttpdzcwj
6-7 g: gnbrfdgrtdkgnxg
5-9 d: dvgpdxxddztkfqmtdp
15-17 v: zvfzplvvjsvvwjhvv
9-13 k: wkkkkkkmkkkkkk
1-7 h: nhhkhhhhhp
4-5 t: fktttptt
5-7 z: gzwztznzh
1-12 w: zwwzwwwswwwwwwwwww
1-4 f: wfhkbvpr
2-3 w: fwwwcbw
5-6 r: rrrrrr
3-4 t: ntsst
10-13 z: zzzzzzzzzzzgz
5-18 c: ccccccccgccccccccf
5-6 z: zzzxzrz
15-20 p: ppppppppppppppgppppp
1-2 t: kjpfpbkbtsg
4-6 p: ppjppkp
6-7 d: gvddtdd
6-12 w: pwwwftwwwwwlhwwrwwvb
8-11 j: wjjjjvjjjjj
6-8 w: wwwswxww
6-11 x: xxhqrxwxxbcxxzrxxc
2-3 f: fqbvzfghff
12-14 v: vcmvvvvfvzvcvvlvvvv
8-10 j: jjjjjjjtjcj
14-15 x: xxxwxpmxxxkxmrw
2-6 c: wccctcc
4-12 l: cllrllllllllll
16-19 q: qqqqqqqqfqqfqqqzqqcq
10-13 d: ddzdtdddgddmdd
11-12 n: qnnnnnnnnzndnn
2-5 c: gcdhctsqgpcbfxl
8-11 s: sssxssdckssfss
3-6 g: gbgghg
4-5 c: cvcxsdcrc
2-4 d: dtdcsdw
1-3 k: kwkk
3-5 z: lzzzzq
4-16 k: kkkbkkzkkkkxkkkgzxkk
2-5 l: nfpbbll
11-17 k: vzfjktqpfhkvlfkskwkn
2-3 v: vvmb
16-18 d: rddfdddddddcdddtddd
8-9 s: sssssssmq
3-4 n: nnnnqz
2-3 b: bbbccbdk
3-8 s: ssvssssd
4-6 s: sssjss
11-14 k: kkkkgkkkktkpkckkk
2-10 g: gngggggggwg
10-16 c: cccccccccccccccccwc
8-9 s: sckslspss
7-11 m: mmnsqxbpmmzmmmmmnp
4-5 f: ffffff
5-13 v: vvvvvvvvkvkvvvvv
1-15 p: ppdpppppspppppp
8-9 g: gggggggvz
5-7 f: fhtcrffftg
9-10 l: llllllllll
6-7 c: cjndcjb
9-14 b: bbbqdbbbxbbbbcbj
2-4 p: ppqppp
13-15 g: gggggggggggggrb
2-4 r: rffc
1-7 d: xzndhjdwnsm
1-4 b: rbbfbbbbbbbbbb
12-13 z: zzzzzzzzzzzzzz
6-12 f: nfldffdffctf
3-6 c: ccbcchm
6-7 t: rjptqtwtttx
11-12 h: hhhhhhhhhhhh
6-13 l: xpfwjllgqzcdl
3-4 d: dddd
11-15 b: frtbbbnkjbbbbbb
1-12 z: pfghwzrzzzffzkzsmxz
1-13 p: qppppppppppprppppp
18-20 v: vvvvvvvvvvvsvvvvvmbw
8-10 m: mmmmmmrtmx
2-4 j: jdsj
10-16 q: qqqqqqqqqqqqqqqq
11-12 c: ccccccccccph
7-8 x: xxxxxxxs
5-8 m: mmpmmmdmm
4-14 w: hlqwhwzmwzxwmwwq
4-5 c: xvrmccwbjccdpxc
6-7 g: gggtgskbppjg
1-8 v: pvvvkvvzbqvwvvvvhs
4-7 x: xxxxxxx
3-9 p: lpspmpjpkpppppppppp
4-7 z: hwckbdbdqqmzmkgtkn
5-7 r: ztptrrrhjcrkrgr
7-10 h: hhhhhhrhhw
10-12 w: wbwzwwwxwnwgwwcg
5-8 s: ssssrsswsssss
3-5 g: ggggmhf
2-3 h: shch
8-10 g: ggmgggnkggzgg
11-12 n: rsnnbnnrnnmlmnnzn
2-6 d: dddddndddd
3-4 t: mptdcrtt
2-8 c: scncnbhfdzvjjclgpkc
15-16 s: ssssssqsssssssvz
19-20 m: mmmmmmmmmmmmmmmmmmmm
1-6 r: grrrrb
13-14 f: fffffffffffvlffb
4-8 v: mkkvwjtvxcv
11-12 t: ttttnttttthprttk
9-14 j: jjsjjnjjjnxcjmjjh
1-4 s: pmmtfs
2-12 x: xxxxbxxrxpxxbxxxkxxg
1-2 f: kvbfg
15-16 l: llllllhlllllllll
16-18 n: dnhnnnnnnnnnnnnxnpn
9-11 f: fffxffnflfqffrdrb
16-20 d: ddtdddddddddhjddddnf
2-5 v: hnvvlv
6-13 s: ckrjsqsqszsmstsgq
7-8 w: zwwwwwfcw
2-3 h: hwjh
10-11 x: xxxxpxxxxpgxxx
9-10 q: qsqqqjqqqqq
3-4 v: vvwnvf
2-3 v: zvvxcnvvr
8-9 d: qdddddddd
1-15 g: ggggggggfgggggggggg
3-5 c: ccvwc
8-15 f: zfffffkffxfvpqfrtfff
2-11 q: vkngzshvnqqb
5-7 c: vcvcccn
12-14 f: fjbtfffvsffqfn
3-5 l: llllll
2-4 h: hhhh
10-11 x: gxxxxxxxxxxp
5-10 q: gjwclkqdqw
3-7 j: rbjrrjjljwkxgjmlhcxs
6-8 j: jjjvjjjj
12-13 p: znpppqppppbpspfpp
16-18 z: zdzwzzzzzzzzzzzzzzz
7-11 b: bbrpbsbvbqbblbbhbb
3-6 k: skxkrr
5-11 b: bbbbdbgbbbqbbbbbbb
8-9 q: qrqqqqqqq
17-18 p: ppppppjpppppppppmr
15-18 k: kkkkkkkkkkdlkkfkkn
6-8 g: ggfgggggg
3-4 x: xxwl
6-14 c: kvcdcccdlsswlcrcggzq
7-8 l: lllmxsllllb
14-16 q: qqqqqqqqqqqhqqqq
3-10 m: wgxshpmtvmhfjhkqqsr
3-10 s: ssssssszgssvsfsqq
7-10 t: tttttttttt
13-16 r: rcfrsfjbfcrgtwfx
10-12 p: vthpppxpptvdpkppppp
4-5 x: zzgxxxkxhxxnkbkmx
3-4 k: hkkdgbkwp
8-12 h: hhhsfhvhhxqjhhhhfh
11-16 k: kfkkkktkkxkkfkkkk
3-5 m: mhjmmmmmmmv
4-6 z: zzzgzqz
6-7 p: ppppppppppp
7-17 m: mmmmmmnmmmmmfmmmdm
2-10 w: rrwlwwrwwhfckflmzrwv
3-4 l: llll
3-12 d: mrddbzddpkddnbddddcd
3-5 j: vtjfbgjrqjgbqjffzvpg
9-19 c: cccclcrcccccccxlcccc
11-20 t: ttttsttttttgwxthtttt
1-5 k: klxknk
18-19 p: ppppppppppbppppppppp
1-2 v: vvvzw
12-15 z: zzzznlzbpzfnzzs
11-13 h: bhhhghhhhhjhhhh
8-9 p: ppppbphmpppzr
6-8 c: qcccdcldwqzjchckkcqc
12-14 t: tgttttpttttttmttntt
12-15 b: wbbbbjbbbsbgbbq
8-15 w: wwhwwjkcwhwncwmwwtwl
8-10 g: ggggggggggg
14-19 g: gggrdgkggggggggggggg
7-8 s: jsssssjts
3-4 z: pzzztrzjztjzb
3-4 v: mvzv
1-5 z: zzlzzzz
3-4 p: pptp
10-11 j: jjjjjjjjjjjjjj
2-14 s: ssrsssssszssss
2-3 g: qknb
1-2 m: mmbm
3-7 b: dbpblbc
1-4 f: fffff
15-16 z: plbzzzmzjvzvdxrvzv
3-8 d: ddzggxgdcjxd
6-10 t: xtlnktsfwt
4-6 n: nnkzcnpnwn
11-18 m: msgjhfcmzghgmjssmmmc
6-15 l: wphlcftpqnjlklbwljns
2-10 j: kjkxmrrjgjczjhwbzd
12-14 h: whhhhgbhzhhzhpthh
7-10 j: jjzjxjpjngjjjjjjjjj
2-10 s: gsvszqrkkm
9-11 v: vnvvhvvvrvb
2-3 v: vvzh
2-4 v: vpfvrng
6-7 z: dsrjhzzgrr
15-16 r: rrrrrrrrrrrrrrrprrr
17-18 d: dddddwddddddddddqq
4-6 z: zjznnmzfmk
8-9 m: mmmmmmmmmm
1-16 h: fhhhhhhhhhhhhhhch
7-15 k: kskkkkkckkhkkkkkkkc
11-15 n: qnnnnnnnnncnnnsn
4-6 p: psgcpbtpp
4-5 w: wbwzt
8-10 p: pppkpgpppp
7-8 d: dddnddgzd
8-14 v: bsvvgvvvxvvrvvv
2-4 k: krzb
14-16 b: bbbbbbbbbbbbcjbc
10-11 p: pppdgppplpcpwppn
1-3 t: ttttb
1-5 f: fffftf
14-17 z: zzzzztzzzzzzzdxzms
5-8 x: mfxxxltxx
2-3 q: qzqwc
2-4 s: sqsg
2-6 p: prjphpt
11-14 r: rqrrrrrrrrrrrz
6-7 f: fffffxgf
5-7 p: gspppqpprjpp
3-4 j: qhvjr
5-6 v: vvvvgfvv
12-16 k: kkkkkkvktkfdkkkk
2-4 m: swmc
7-11 p: nsnppppkpxppppp
1-6 h: ghkthggpldk
2-4 l: xllwl
2-5 h: qhmht
5-6 b: lrbbbj
10-11 c: tccccccccdccc
10-15 p: fpgppppppnkpppmhpg
16-18 j: jljmjjjjjjjjjjjnjjj
17-18 s: scssssssssssssssvz
2-10 j: xjjjjxmjjj
5-8 c: ccccckcccc
6-13 f: fpfffmfvrhrbsfft
3-7 l: kkzbswgcbsvglk
9-11 f: fdfffffffffvf
2-3 h: zhqhjhqtzw
16-17 n: nnnnnpnnnnnnnnnnn
8-10 j: jhjjjjjjjjjj
2-3 c: ccrscn
4-5 n: nnnnn
5-6 q: zzbrqq
6-17 j: glwjjmjjjjvjjjjjrj
9-15 c: zbrzccxntzbhccq
13-18 q: qqqqqqqfqrqqdqqmqq
7-9 s: sssssssss
1-4 x: xxfx
4-11 k: tvtkbklzkkk
12-14 r: rrrrrrrwrrrjrnrrr
4-6 r: jmrvrhtrrbrm
2-4 z: ztzf
3-4 q: qqbqq
1-10 m: kmmmmmmmmmmm
1-4 m: rmnd
5-6 b: bbbbbb
6-8 g: bxrmggqggjg
13-15 b: bqwvbsbpbbxvbbb
10-11 j: jjjjjcjjjjjr
4-10 x: jxxwxlxxlxxrxx
13-15 r: rrrrrrrrrrrrgrfr
8-17 n: qcnnnnnsjnnnnrnnwnn
15-16 k: kkpdvkqqskftsdkk
11-13 r: wddrrkrrrtqrp
1-3 f: mhst
11-13 z: zzzzzxzkqzzzjzzzzz
11-14 v: vvvgvvvvvfvlvmv
5-8 r: rrcbsrrb
1-5 x: xxwgxksmlxcqvfdrn
13-14 n: nnnnnxnnnnnnnnxn
2-3 c: cgscccc
1-4 h: vxkf
3-5 w: fwwgw
10-15 d: ddddfdddltddwtdddq
11-13 v: vvvvvvvvvvvvvvvv
10-13 v: cvwhdvpgvfvmtvvvvvv
10-11 r: rrxrrrrtwrrrsxrr
8-9 r: prkjsrhrrr
5-19 v: bvjvwgvgdvvpsvrvvvvp
2-10 q: wqqqqqbkqq
10-11 f: ffffffffkgw
9-11 p: ppppppppjbc
2-8 b: bbhbbdbbbb
8-9 h: hwzshwmhhfhh
3-10 r: gwnhftrjrfrbrczrj
1-5 f: ffftf
1-7 g: lcggrjg
3-14 j: jjvjjjjjjjjjjjjj
5-18 q: hqqjqlddxqqsdpqhgwqm
5-8 m: jjnfzrzprhpgdfd
2-4 x: dxxxnxx
7-19 q: qkqqqqmbqkhqnqfptgq
5-7 q: fqjqwqqxpdmqh
1-2 x: xxtx
5-15 v: vvgvfvlvvvvvvvsvvv
1-9 q: rqqqqqqqqqqqqqqq
4-5 k: kzkkk
13-14 c: cccccccccccccc
5-8 w: wwwwwwww
1-5 z: zxzdzzzzzmzm
10-15 r: rrrrrrbrrrrrhrrrrr
9-10 f: ffxfffgffff
3-12 p: ppppbspqtfplpp
1-4 z: mzzn
1-14 w: vkwdwwsnpwxwwrvwwr
2-3 h: qlchhm
10-12 b: pbbbbbbbbjbq
4-5 h: vfhnwhxhhtg
16-18 z: zzzzvzzzzzzzzzzztpz
7-10 j: jsjjjjjdjbmjrdbn
1-2 x: qnxxxjxx
4-5 k: kkkkkk
4-5 h: hhhtg
1-3 x: xsgbd
10-11 f: ffwsfmhxcfdfffffsff
11-12 h: hhhnhhhhhhhfhhgh
1-4 b: fbbg
2-11 f: cfhtkftnrbhlvqsl
8-13 j: sddtjjjjlzqjtnjjj
2-4 l: wmxltll
1-9 k: gdjhphrfxsdpjqqkx
15-17 n: pptwgnwfmmnxswjzn
17-18 k: kkkkskkkkkknskkkkkkk
12-17 c: ccccccccccsccccccc
8-17 b: btxbbbbmbbbbbbbbcb
17-20 s: tshrnrqlssdtsnsdsgcw
2-4 w: wwww
1-5 s: lhspxs
9-13 g: cggggchgggfzgggg
1-2 v: vvvfm
1-11 v: vfvvmfvtnvvkvc
18-19 b: bbbbbbbbbtbbbbbbbbbb
8-10 p: ppfpppjzpvr
6-12 r: rrrggrcrmrlr
5-6 d: dpddls
1-3 r: rrrt
1-3 j: jjkghtlh
3-9 q: hcqqhgrjqqvtqqjvjxvl
7-9 n: nnnnnnnnn
11-12 v: vvvvvvvgvvvv
4-13 d: djddddmdgddddddx
1-2 b: sbbq
9-14 b: dbdgpsfzbjpkbbkbzs
7-13 p: pppftpxlrbhrkpppp
1-6 p: ppppppp
2-4 w: wwnw
8-15 l: klllllllllllllkll
4-8 z: zvzzzzgzzz
15-16 n: nnknnnnnwnnnnnsnnn
1-8 c: chczcdcccpccc
2-13 f: gfblfggbfzhff
2-6 g: njglpsbmxrl
16-18 q: hhvfzzqqqnqhpwxqvq
4-11 f: ffsffnffffsfs
14-16 m: mmmmmmmmmmmmdqmmmjmm
3-11 l: llglllllllvl
5-10 l: tngnngcrjnhfpklt
12-14 n: nnnnnnnnsnntnx
4-16 b: hdbbjbhzcbvrfbhbntb
14-15 r: kxrrrrrrrrrrrrrrr
9-11 d: dhdtjdddsdzqddzdxxd
5-11 n: ndxnnsnnnndn
5-6 n: xnnnnnn
3-7 s: ssssgvscxldkdlspct
13-17 f: fffffffffffffkffff
8-13 v: vwwvvvvzvmvkq
2-6 t: tstplhxt
2-11 c: zfcgscfpgcbbqc
4-5 z: zszqqxcbjnrwkwzgnjzt
12-13 g: ggggjgggggggggjgg
4-5 j: wjmwcrsjjbpt
1-4 n: nnnqn
2-5 g: zggggtgx
3-8 h: zhphrhbhkhbxwh
4-5 c: cccbhc
10-13 d: wgdddddzdlndnkddqdwg
18-19 g: gggbgggbhgpggggggdz
10-14 x: xxxxxxxxxqzxxgq
7-19 t: dtsmsstnttxttrttttt
3-4 s: stsd
1-4 d: dddn
4-14 b: frgbbqbbqbgqjgln
6-7 h: hhhhhgs
11-13 w: xwqwwwwwgzwwwklwtsw
4-5 s: ssskz
1-14 s: shsfrdqnssswss
2-3 n: nhknnnnnnnpnnnnnn
5-13 q: qqqqzqqqqqqqqq
3-10 b: rfbksnzmsbkpdbrfpfks
1-2 v: vvdqwbknv
9-10 r: rrrrrrrrmr
1-2 b: sqbbbc
10-11 n: nnnnnnnnnznn
1-8 t: thtjttctdmgvnwfr
14-16 j: jjjdjkjjjjjjjjjjjvj
7-8 v: tvvnlvvvhvvv
7-13 s: fshsssssssfsslpjsr
6-10 s: ssssssssssss
3-7 m: mqmzmsm
2-13 z: cnlbjnngdzsqtnbk
5-6 j: jjrdnt
14-15 h: hhhghhhhhhhhhpm
2-6 l: lnkllpfdsd
8-9 p: pptpppbvzp
13-15 x: xxxxxlxxxxxxbxh
2-9 k: xrglrkvkkrkkxkk
4-5 r: rlffgcqjbrvtdscr
2-8 n: nnnnnjnn
7-9 b: vdspbxxbg
9-10 b: bbbbbbbcrvbbbbbbbbb
5-10 l: lhllvpvxcbfclllvll
2-5 n: mkjnz
10-18 b: bhthcpbwbbpdjspbsb
8-10 r: rrprrrqsrrrgzrlcf
12-13 w: wwwwwwpwwwwdb
4-16 z: zzvnzzzzzzzqwzzlzz
12-17 t: tttttttbtwttdttttttt
2-3 b: bbbc
2-9 b: phbmnbbdgbxbr
6-8 r: rprrrrrr
14-16 x: xxxxxxxxxxxxxxxx
10-11 d: dvdrdkdfhdtdddddd
6-7 v: vgvvvvvvjw
3-4 h: hhhh
7-10 m: hmmqdssxmnmm
5-6 d: dddddn
13-19 x: xxxxxxxxxtxxgxxxxxc
5-12 g: ggxmgzlggbggggltkggx
1-15 f: nznmdrdfbrcnnslh
7-8 g: jxjgqmggggtdgsdgggm
1-3 p: kpjxqpkpp
3-4 s: fbxl
1-4 j: jfhjdlxbwrdjxzktz
11-12 m: mmmmmmmmmmmm
16-17 v: vvvvvvvvvvvvvvvnz
8-15 z: bzzdzzqztznfgzzvz
2-4 c: fglsc
1-8 q: qbqgqgtq
11-13 c: ccrjctrpfcxccqv
8-11 l: llllllnlllgfc
4-6 l: glqltllxllhb
7-10 c: fclctdcgcqjlctc
5-12 t: dtttttmttvbt
3-5 d: vddtdzdddvgd
8-18 z: zzzzzzzzzzzzzzzzzz
1-8 s: qtspsssw
4-6 g: rsggjm
1-12 r: drrrrrrrrrrsr
3-15 q: fqtsbqtcjqqzqqwq
2-8 v: qvsvcdvvvvv
4-6 p: pkctjwgjpm
3-5 s: ssgwns
11-17 v: vvvvkvvvvvvvvvvvrvp
5-10 f: ffffhxffxgfffx
1-2 h: dnhhhhhhh
5-11 r: jzltrrrvtjrs
3-6 c: hcccpqrcd
4-18 p: nrpppbkvwrlzjvpwcpt
6-7 q: qqqqqkh
6-8 v: vvvvvvvv
4-5 b: bjpnk
7-12 r: rvrrnrrdrlrr
2-17 j: zjjjcjtjjjjfjspjj
1-4 g: gggg
4-9 f: lfffwffffzwffn
1-7 z: nzzxzwpzpfzzzz
5-7 z: zzcjbztlc
2-3 s: sjsqzfhs
7-11 n: nvnsnjvnhtsnphkzs
11-12 n: nnnnnnnnnnjc
1-4 d: vddg
3-4 q: qqzw
8-10 t: thzttttsptt
3-9 w: lwpgwrwmgc
9-13 d: bdfmkdlbdgtdd
2-3 l: jlll
4-6 v: mscgmnvvtvtzvklqhzvv
2-10 c: ccnzfcmzccpqnc
6-9 w: wwwwwwwwsj
9-15 l: llllnlllmlllxll
8-9 q: lqqbffqqqqnlqzwqqlrg
7-9 p: pppppzptbp
9-13 b: bbbbbbbbhbbbv
13-20 p: zhpppppppppppppppqpp
7-8 d: dddddddd
10-11 v: vvhvvvvzvvvgvzv
5-7 x: xxxxvxt
7-14 d: ddddddcdlddddpvjdd
4-5 x: xxxnx
4-11 m: mdrjmkbhmmgmmmm
11-17 v: vvvvvvvvvvvvvvvvkn
10-17 l: ltddhlllllljlllllll
6-10 j: fbjnvgtwdm
9-12 c: lcccccgcfccccc
7-12 z: zlqzzhbmzzqszzg
4-5 s: ssssslh
10-19 x: wjzfxrcdpxzxxxxgkmx
11-14 l: klllvpklrlpllvllll
5-7 h: hhhldtrhhzg
7-8 p: dbkpqpnv
1-15 b: bbbpbbnbnbbbjkb
2-3 v: vrkvv
9-18 b: bbhbbbgbbfbbbbbbbcqb
3-10 f: fdlvdffffhfffff
7-8 s: xsgssfstsssnlrzqs
6-8 p: vprjjprzb
7-8 q: htstsgqkqn
9-14 f: fkffffqfjfffzffnf
16-17 x: xxxxxxxxxxxxxxxnr
1-14 m: mmmmmmmmmmmmmmmmm
14-16 d: kwtvhfwddvcxdddd
3-15 k: kknkkkkkkkskkgkkkdkk
3-6 d: dsdmndpdmvcllq
4-5 d: gdvqqqtqw
13-14 l: llllllllllllwb
8-14 h: chlhflhxhchnwl
12-15 j: jjsljjjjjjjhjjwjj
3-14 c: pxxlstbvfmmzhcjcv
4-14 p: fhpxvfxblfphhjppdddp
2-3 j: jjjj
16-18 r: rrrrrrrrrrrrrrrrrp
8-13 p: vlppwpphhjppk
8-11 w: wwwzwwmlwwwwwww
14-16 k: qqvtnmpkkrpfzsnftwtk
15-17 b: bbbhbbbbbbbbbbbbbb
7-8 m: mmmmmmsj
11-12 v: vzvvvvvvvvvvv
5-8 p: jpppphpp
3-4 n: ndjntnl
10-11 v: jmcvpvvfxhjw
1-4 p: pndptkg
1-2 z: gmzzpgzrzzzr
4-6 b: rrbnbbblb
7-8 r: rtrrrrrr
5-6 z: zznzzk
12-13 j: jzjdvqjsjpljjnzjsvst
3-4 k: gkkkrk
8-10 g: ggggxgglghw
5-8 w: wwkwwwww
1-2 x: xjrgjxxns
3-5 s: mlszs
2-5 r: trrglpk
14-15 d: drdjwgvdxcrgdvpxd
4-12 h: wpklmfhrkcqdd
6-8 v: vpvxjlvl
16-19 m: mmmmmmwmmmmmmgmbmmhm
11-12 n: nnxnhqrnknlp
1-3 h: hknfhwwz
3-4 r: zrrlrqbp
16-17 h: hhhhhhhhhhhhhhhwh
4-7 b: xbqxbkjbbbb
7-9 g: ggggggggg
8-9 t: tttttttkt
2-5 j: fkjhxjjftwjpgjxq
5-8 c: ccvcccvcc
14-17 g: gggggggggggggnggpg
8-12 x: xxxfxxxxlxtpxvx
7-12 l: lllllllllllllllll
6-8 v: vzvvvvvvvh
7-9 w: wwwwwwswj
2-3 j: lvvrj
3-4 r: rnrrsr
1-8 c: kqvcsngc
4-8 r: rrrrrrrr
4-6 z: cczzzgz
2-4 v: vvhvkm
10-14 h: ccnhhbhhhhhmhhh
3-4 v: cvvvvfcwmg
8-15 g: ggghgckggbkggmgggkkg
10-13 v: vvvvvvvvvqvvm
1-3 h: hhkhh
4-6 l: llldlg
8-19 c: czcsjccrqcvjcclcccc
13-20 s: ssssssjsssssssssssss
5-6 s: tsssvjqlls
4-9 s: sntvsssszsm
9-10 j: jjjjjjjjsdjj
9-10 z: wpzmzkzzzzzvd
6-17 g: gglfgqkglgrgrggnzg
10-11 f: ffsbdjfhbdgfksffhn
9-10 n: nnggcfptnngnnszppgv
8-12 w: wwrwwwwwnwwwwwwww
7-17 r: wkrrfcrjrrdprpxrrcr
9-10 m: mmmmmmmnwxmm
1-8 x: lxbxxxxd
1-6 h: xhhhhhhhhh
8-12 b: bmbbbpbnkdbbbjblbb
7-9 m: dmmtwmcdgj
1-3 q: qcqvqlqggzrhm
10-15 v: vvvvvvvvvvvvvvvv
1-13 l: llglllwllllblllll
2-7 s: szsszstbsg
1-5 h: hhhwhhphzczth
7-18 f: xnzzkfqsfntwtfwflb
3-5 v: fzdvg
2-8 s: lsvsshsssss
10-11 z: zzzzzzzzxzzxzzzzz
1-4 r: prrrrrr
6-8 p: prlnkpppfpqvwkpkcpll
9-15 j: mjjjrjjcqjwjjjjj
7-10 k: kklkdkpknlkks
1-9 n: dnmbgnnnnbnw
3-6 l: blwlsx
2-7 m: mbmmlkrmj
12-13 k: kkkkkkkkkkkkk
7-9 t: trttcgtttttt
14-15 l: llllpllllllllll
3-18 j: jzjbmxfwggkvlbbbmjm
1-4 v: pvrrvv
13-14 j: jjjjjjjjjdjjgjj
3-5 x: xqxxxsx
2-3 z: zzsxz
3-7 n: nnnnrtjbnn
1-2 d: dddddddd
8-11 b: bbblfbjqbbkqkcbbbbm
4-5 w: swqrftwvwwq
3-4 c: bsnpvrccvthcwb
4-6 p: pplnxkpw
6-8 k: krkkkkkk
4-8 x: ggdsdrdncmkpvqrxckt
9-18 t: ttttttttttvtttxbht
13-14 w: wwwwwwwwwwwwww
3-4 g: pgggmgxdm
13-14 r: rrrrxrrrrrrrtp
5-8 h: qmhhhhht
3-4 b: zbbbzb
4-6 h: hlkhhr
4-5 g: hlghgklvpgg
12-13 q: qqqqqqqqqqqbx
5-10 g: ggggdggggm
7-12 r: rrrrzrrrbbbrk
8-9 h: hhxhhlhwhxhhhn
4-13 h: hhhhhhhhhhhhkhh
2-4 q: cqlqqwqpvwvqcx
3-4 n: wvcqnwkp
1-2 b: bbbb
4-14 d: wdcdqddgcvppdd
4-5 s: dsssv
3-8 t: cttttttvmtttszqttt
6-7 m: mgmmbmwtmm
3-4 h: hhhhh
10-11 q: qngqqqqqqqqq
4-9 x: xmxkbdxfc
1-2 q: gqtg
8-10 k: kkzkkkkkkkkkkkkkkx
4-8 f: ffkffvkfvfp
14-15 b: bbbbbbbbbbtbbbk
8-14 f: ffnfkpfkxvmvfjpffrr
9-13 r: rrlrrxkrzrrrkr
2-4 x: xxxlx
1-6 c: mcfccc
16-17 v: xvvvvvvvvvvvvvvvv
2-7 t: dvzktkt
9-18 z: ztqzzfzzzczjzczhzkzz
2-13 z: czkznmsgqmhfz
1-8 f: wkffffffffxfffffffff
6-9 b: bbbrrbxbrbxqb
6-9 x: xqxkxfwpsxxdxtnxd
1-13 j: jjjjjjjjjjjjjjj
2-4 h: thzhxhhk
4-14 t: ttfttttcttttttt
9-18 t: wbtbptjfnvtvcnttctm
1-2 p: tjcdfkt
5-9 z: wrzztzmkz
5-6 g: ggggqg
4-5 d: fdddd
1-10 n: bdnnncbsbjnccf
14-15 f: ffffzfffffffcpw
8-9 t: ttttttttt
11-16 p: rppppppppppsnjnppppp
9-12 r: llrclfnkcrrrrrrrrdt
2-8 r: rrrrrrrrr
7-8 f: lmdnndpwfbqfxrnqw
3-9 k: kkkkkkkkskkkkk
6-14 h: hhhhhhhhhphhhh
2-11 g: ggggggggggffl
2-10 z: zxzzzzzzxgmfzt
10-11 r: rrrrrrrrlrrdxrr
2-5 m: mvqmq
2-6 w: wwjlwwwqmsn
3-5 j: jzjjq
4-7 j: jjjnjjnj
3-4 v: vvvj
1-4 h: hhhh
10-11 w: wwgwwjlwwkccmfwwkq
13-15 k: kkrlkkkkkkkkkkk
4-5 q: qqqbr
2-4 h: hqhh
9-12 k: kkkfvpxkkkrkkkb
7-10 x: xxxxxxxxxx
5-9 n: nnznnnxmn
16-17 c: ccccccmcccccclczmc
1-3 x: xxxq
9-18 w: wvwxwwtwwvgwwwwnwwf
14-15 l: lcllllllllllllllll
15-18 f: fffffffffffffrdffnf
6-7 k: kkkxlkbkk
5-7 j: jjjjqjtjj
1-9 b: jbbbxgqqjdlb
1-3 r: wwrmvlqzhqsltznlhcd
9-11 d: dddddddddddd
4-9 l: llrmlvllrvl
2-7 f: tfgfvwjsnflh
2-3 v: cvvvv
3-6 z: nkzwnzkvzqlzkwszdz
3-9 v: vhqzcvvvfrvdm
12-13 n: nnnnnnnkfnnqjnnw
6-14 f: ffffffffffffff
6-9 x: mxxgrnxxqxcglx
4-7 w: whwwwwwnw
1-5 v: vvflv
3-6 h: hhhhhh
10-12 k: kkktrgncpkvkk
1-3 w: wfwqq
18-19 l: llllllqlllllllllllj
7-10 t: fttthttjqtj
7-9 b: bblbbbwbt
5-7 r: rrhrqrrr
1-7 w: kwwwwwsw
4-6 h: hpnmzhbhfhqntvr
5-8 x: mxmxpxxjvx
6-10 t: qgtmhfflnbvnttpngvvj
4-9 t: tvtfttttvtl
3-4 q: qhxv
3-8 x: fxcxlxjsxwgs
14-16 k: kkkkkxkkkkkkdrkv
2-4 x: qppr
9-13 b: bbbbbjzbsbgbzbbbbb
4-13 s: sssssssssssssss
3-10 d: dslldmdwdfwdwnmpjd
7-8 s: sssssssr
5-7 f: fffffffh
1-2 f: ffxf
2-3 c: cccc
10-12 c: cchccccccccc
12-14 q: hqmhqqrqvlgqgqlqtsqq
4-5 m: mmmms
2-12 j: bjfjdjxmjcjjhtzvs
4-13 p: bsprpkglzfscp
5-7 d: dddddbdddzt
2-8 q: vqcqcqrmqg
9-10 v: vvbvvvvvvv
9-10 c: cccccccbsc
10-14 n: nnnnnnnqnknnnznn
5-7 t: ttttttt
7-12 c: ccccckccckcccg
3-4 b: mgjbbsmbcbbp
4-8 t: swztttxttttpsvt
11-12 r: rrrrrlrrrrrc
3-5 t: tmppv
2-11 v: nspwbnmjcvszpvrhvjv
4-5 v: vvvvvtv
8-9 x: xnndxxxtrxqfxx
13-16 s: zdsqjvrhqxxswscszbl
7-15 s: sjsjssqsssssssss
2-16 j: nzxqwnjkjjqczhjkjdj
13-14 z: zzzzzzzzzzzzzz
2-4 j: jmjh
7-8 t: httftnsmtt
2-3 f: gpfc
12-13 x: pxxxxxxxxwxvqxx
1-5 h: hbqkhp
5-9 k: mmkkhkkknwqk
1-4 j: jjjxjtjjjjjdj
4-5 r: rfrrrr
1-7 d: fpbqxxddh
9-13 g: gggggvggggggggg
4-8 q: qqqkqqqqq
16-18 x: mpxdckjxbqhmxxlxxzxx
2-14 f: fffwffffffffmff
15-19 w: bzmkzxqthgswzlwnphww
4-7 j: jzjjzjjpzjlvjjjjljj
2-5 b: brbbwprbvb
5-7 x: cxrxwxw
2-4 n: nnhn
3-4 q: qqsqq
8-15 v: hnvzkvvrjnvvvvvj
3-4 j: jjcjjp
1-7 d: ddvddddbd
3-8 v: pgvfvrcv
5-8 p: bbppdttpkpfp
12-17 k: kkkfkkkkqkkqkkskdk
1-8 k: pcbkwswkmkkkbkrkk
16-17 f: fffffffzffffffffff
3-7 q: qqqqqqq
2-4 s: sssss
11-13 x: jxmczktzfrrrv
15-19 l: lllllclllllllllflll
8-14 m: mmmmmmmmdmmmmmmmmmmm
5-10 j: jjdxtcpwfxqqgpn
2-7 n: nnmnnnjnnntz
10-16 j: jjjjjjjwjpjjjjjnj
3-15 m: mvmttdmmsmmmkwmx
3-4 q: qqqql
5-6 b: bbbbjn
14-17 t: ttttttttptttttttxt
12-17 m: mqgpmmmmbmmmmmpmmg
19-20 n: njngnntvnnpndnsndnsg
1-7 j: gbxzpqwcsc
1-2 r: mxdvrbqr
5-10 z: fzxzpczfcbkzzzzzz
7-8 d: dddddddddd
9-10 d: ddddddddpz
3-16 b: bbjbbbbbbbbbbbbb
8-10 b: bbcbbdbvbk
12-16 x: xxxxxxxxxxxxxxxbx
1-3 l: nklsbwr
3-7 k: kkkfhkkzwkz
5-10 f: lqphfhztff
2-4 k: kqffwknfrg
5-9 w: wwwwqwwwpww
1-6 z: jdbrjvm
7-8 r: rrrrrwrrlmr
2-13 m: nszmspbmrrtpwppmq
14-15 z: zzzzzzzzzzzzzzz
4-9 x: dmklkllxx
3-4 m: mmqpfmgzgkhwz
1-6 q: fphqvm
9-12 p: pvprppdtpxsjbpmmppp
4-5 x: xxxqmx
1-9 d: ddpjdcmbdstn
1-3 g: gggg
2-4 w: wlclwzf
5-11 f: ffffbzfnwfh
2-4 v: vhvhj
1-4 h: hqskhghrznfkkg
2-6 b: bxbbtk
2-4 x: xxxx
7-8 w: wwwwwqnxwww
2-12 h: hshhnhhxlbfchhhdhhsh
16-17 q: qqqqfqqcqdqqtqqcf
9-12 t: ttttttttjttt
1-3 m: hdzdvv
5-14 r: rmrkrbrrlrrrhwrrpkr
4-6 g: gggggx
15-16 r: rrrtrrrrrrrrrrtp
5-13 q: mzqtnknqzqgqhqdkwmlf
13-14 d: ddddddddvdddddd
4-5 p: ppprzr
7-8 z: zzxzzzfjz
8-9 c: ccgzcccmhcc
4-5 x: hxxxxq
1-3 t: ttttttpttltt
11-14 h: hhchhbtvfvjhhr
7-8 r: brrrrrmrrr
8-12 v: vvvvvvvnvvvf
5-6 l: nddlllwlllll
13-14 k: kkkkkfvkkkklmwkk
8-10 t: tttttttttt
2-9 k: jbrxrwkhkh
4-5 p: hpppp
10-12 z: zzzzzzzzzzzfzz
2-8 c: cqxkjkdhkgsdddtvt
1-5 d: dddsdhd
4-13 v: vvxlvvvvvvvvgvv
1-4 q: pqqv
3-4 k: krrk
6-8 v: cdvvvxvhvvvvv
1-3 d: ddddtd
10-11 b: bbbbbbbbbpj
9-16 d: ddrddddgdcddddddd
9-10 k: llrctckdkkv
8-11 f: jnffzfrffgffsfwfvkkj
8-13 d: dbddnddnjdmjdddkdd
5-6 b: bbbbhzbz
2-11 h: hhvghhhhhhh
15-16 q: qqqqqnqtqqqbqxqlqqcq
4-5 k: kkkdw
10-16 j: jqvhdjgmkjckjlpg
6-11 q: vqdnfbqqgqmqqqqq
8-11 q: qqrqqqqqlkq
8-11 v: wvvvvvvvfvvvrvvj
8-13 s: ssssssssscsfsss
6-8 w: pwwtwwlwwhww
8-9 f: ffffjfflb
2-4 v: jvgxmphvr
2-6 r: rrzrcd
10-16 n: lvknnwnnvsmnnnnhn
12-13 r: rrrpjrrrrrrtfrkwmr
+2
View File
@@ -0,0 +1,2 @@
1016131
276432018
+2
View File
@@ -0,0 +1,2 @@
622
263
+41
View File
@@ -0,0 +1,41 @@
// ==== day 1
use crate::utils;
use anyhow::{anyhow, Result};
fn day01_part1(data: &[i64]) -> Result<i64> {
for i in 0..data.len() - 2 {
for j in i + 1..data.len() - 1 {
if data[i] + data[j] == 2020 {
return Ok(data[i] * data[j]);
}
}
}
Err(anyhow!("no result found"))
}
fn day01_part2(data: &[i64]) -> Result<i64> {
for i in 0..data.len() - 3 {
for j in i + 1..data.len() - 2 {
for k in j + 1..data.len() - 1 {
if data[i] + data[j] + data[k] == 2020 {
return Ok(data[i] * data[j] * data[k]);
}
}
}
}
Err(anyhow!("no result found"))
}
pub fn run() -> Result<(i64, i64)> {
let data = utils::read_i64s("data/input-01.txt")?;
let answers = utils::read_i64s("data/output-01.txt")?;
let p1 = day01_part1(&data)?;
assert_eq!(p1, answers[0]);
let p2 = day01_part2(&data)?;
assert_eq!(p2, answers[1]);
Ok((p1, p2))
}
+48
View File
@@ -0,0 +1,48 @@
// ==== day 2
use crate::utils;
use anyhow::Result;
use regex::Regex;
struct PasswordSpec {
min: usize,
max: usize,
required: char,
password: String,
}
fn valid_password_1(p: &PasswordSpec) -> bool {
let count = p.password.chars().filter(|c| c == &p.required).count();
p.min <= count && count <= p.max
}
fn valid_password_2(p: &PasswordSpec) -> bool {
let char_a = p.password.chars().nth(p.min - 1).unwrap();
let char_b = p.password.chars().nth(p.max - 1).unwrap();
(char_a == p.required) ^ (char_b == p.required)
}
pub fn run() -> Result<(usize, usize)> {
let data = utils::read_file("data/input-02.txt")?;
let answers = utils::read_i64s("data/output-02.txt")?;
// parse lines like "4-8 n: dnjjrtclnzdnghnbnn" into vector of PasswordSpec{}
let re = Regex::new(r"(\d+)-(\d+) +([a-z]): +(\S*)")?;
let pwspecs: Vec<PasswordSpec> = re
.captures_iter(&data)
.map(|cap| PasswordSpec {
min: cap[1].parse().expect("parse error"),
max: cap[2].parse().expect("parse error"),
required: cap[3].chars().next().expect("string index error"),
password: (&cap[4]).to_string(),
})
.collect();
let p1 = pwspecs.iter().filter(|p| valid_password_1(&p)).count();
assert_eq!(p1, answers[0] as usize);
let p2 = pwspecs.iter().filter(|p| valid_password_2(&p)).count();
assert_eq!(p2, answers[1] as usize);
Ok((p1, p2))
}
+18
View File
@@ -0,0 +1,18 @@
use anyhow::Result;
mod day01;
mod day02;
mod utils;
// TODO
// ====
// * move from i64 to something else that works with the data+problems, int, i32, usize?
// * clean up error handling (move to `?` inside closures)
// ==== main()
fn main() -> Result<()> {
println!("Day 01: {:?}", day01::run()?);
println!("Day 02: {:?}", day02::run()?);
Ok(())
}
+15
View File
@@ -0,0 +1,15 @@
// ==== utilities
use anyhow::Result;
use std::fs;
pub fn read_i64s(filename: &str) -> Result<Vec<i64>> {
Ok(read_file(filename)?
.lines()
.map(|s| s.parse::<i64>().expect("i64 parse error"))
.collect())
}
pub fn read_file(filename: &str) -> Result<String> {
Ok(fs::read_to_string(filename)?)
}