Added day 4 and 8
This commit is contained in:
parent
26444ce61b
commit
cf6fda2f0c
|
@ -5,6 +5,16 @@ name = "AoC2020"
|
|||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
version = "0.7.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"memchr 2.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -20,6 +30,46 @@ dependencies = [
|
|||
"either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lazy_static"
|
||||
version = "1.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.3.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "1.4.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"aho-corasick 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex-syntax 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-syntax"
|
||||
version = "0.6.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "thread_local"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[metadata]
|
||||
"checksum aho-corasick 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
|
||||
"checksum either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
|
||||
"checksum itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
|
||||
"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||
"checksum memchr 2.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
|
||||
"checksum regex 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
|
||||
"checksum regex-syntax 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
|
||||
"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
|
||||
|
|
|
@ -8,3 +8,5 @@ edition = "2018"
|
|||
|
||||
[dependencies]
|
||||
itertools = "0.9.0"
|
||||
lazy_static = "1.4.0"
|
||||
regex = "1.4.2"
|
||||
|
|
|
@ -0,0 +1,989 @@
|
|||
hgt:176cm
|
||||
iyr:2013
|
||||
hcl:#fffffd ecl:amb
|
||||
byr:2000
|
||||
eyr:2034
|
||||
cid:89 pid:934693255
|
||||
|
||||
hcl:#b5c3db ecl:grn hgt:155cm pid:#baec97 iyr:2017
|
||||
byr:1939
|
||||
eyr:2020
|
||||
|
||||
pid:526669252 eyr:1972
|
||||
hgt:152cm ecl:dne byr:1960 hcl:z iyr:2023
|
||||
|
||||
eyr:2028 hcl:#c0946f hgt:73in byr:1926 ecl:#473aaf iyr:2016 pid:565318180
|
||||
|
||||
pid:472686027 ecl:oth iyr:2019
|
||||
cid:277 byr:1940
|
||||
eyr:2030 hgt:170cm
|
||||
hcl:#62e117
|
||||
|
||||
ecl:oth
|
||||
iyr:2017
|
||||
pid:938461813 hcl:#733820 byr:1959 hgt:159cm eyr:2022
|
||||
|
||||
iyr:2011 eyr:2021 hcl:z
|
||||
ecl:hzl byr:2002 pid:17324328 cid:140
|
||||
hgt:186cm
|
||||
|
||||
byr:2022 pid:3164234967 iyr:1984
|
||||
hgt:76cm hcl:6b3837
|
||||
ecl:#fa362b
|
||||
eyr:2037
|
||||
|
||||
hcl:z eyr:1945
|
||||
pid:9247286687 hgt:75cm
|
||||
iyr:1934 cid:326 ecl:zzz
|
||||
byr:2005
|
||||
|
||||
byr:2005
|
||||
ecl:lzr
|
||||
eyr:2021 pid:152cm
|
||||
cid:254 iyr:2020 hcl:z hgt:157cm
|
||||
|
||||
iyr:2020 eyr:2020 hcl:#18171d ecl:gry pid:914128753 hgt:168cm
|
||||
byr:2002
|
||||
|
||||
hcl:#7d3b0c hgt:160cm eyr:2020 iyr:2015
|
||||
pid:054067854 ecl:brn byr:2023
|
||||
|
||||
hcl:#cfa07d hgt:157cm
|
||||
byr:1994 eyr:2027 pid:344443856
|
||||
iyr:2016
|
||||
|
||||
pid:762423097
|
||||
iyr:2014 hcl:#a97842 ecl:brn hgt:180cm byr:1927 eyr:2021
|
||||
|
||||
pid:6645616064 hcl:#ceb3a1 byr:2030
|
||||
eyr:2032 hgt:158cm iyr:2012
|
||||
ecl:#e9619e
|
||||
|
||||
eyr:2022
|
||||
ecl:brn
|
||||
byr:1986
|
||||
hgt:161cm cid:99 pid:288726584 hcl:#6b5442 iyr:2019
|
||||
|
||||
cid:75
|
||||
pid:117771843
|
||||
hgt:184cm byr:1937 ecl:brn
|
||||
hcl:#d88fd9
|
||||
iyr:2015 eyr:2027
|
||||
|
||||
iyr:2016 hcl:#fffffd hgt:170cm eyr:2022 ecl:oth pid:629454113
|
||||
byr:1952
|
||||
|
||||
hcl:#c0946f iyr:2018 hgt:189cm
|
||||
byr:1971 ecl:oth eyr:2029
|
||||
pid:800207810
|
||||
|
||||
eyr:2022 hcl:#7d3b0c pid:969986413
|
||||
byr:1978 iyr:2020 hgt:186cm
|
||||
ecl:gry
|
||||
|
||||
hgt:171cm byr:1949 hcl:#341e13
|
||||
ecl:amb eyr:2030 pid:359107274 iyr:2013
|
||||
|
||||
pid:839751525 eyr:2024 byr:1921
|
||||
iyr:2012 ecl:amb hcl:#b0ed6f hgt:154cm
|
||||
|
||||
pid:32592758
|
||||
byr:2009
|
||||
hgt:107 iyr:2019 hcl:#866857
|
||||
eyr:2036 ecl:amb
|
||||
|
||||
eyr:2040 hcl:#733820 cid:199
|
||||
byr:2027
|
||||
pid:7791792988 ecl:blu iyr:2026
|
||||
hgt:63cm
|
||||
|
||||
iyr:2011 cid:119 pid:344693475
|
||||
ecl:grn hgt:160cm eyr:2029 hcl:#346973 byr:1996
|
||||
|
||||
hgt:161in byr:2025 cid:167 iyr:2024 eyr:2040 pid:034804648
|
||||
hcl:#efcc98 ecl:oth
|
||||
|
||||
ecl:#ba14f0 iyr:1935
|
||||
hgt:60cm
|
||||
byr:2003 eyr:1987
|
||||
hcl:8e509b pid:161cm
|
||||
|
||||
iyr:2018 pid:620508652 ecl:amb eyr:2023 hgt:183cm hcl:#a97842
|
||||
byr:1967 cid:117
|
||||
|
||||
eyr:2022 ecl:amb
|
||||
pid:476049089 iyr:2012
|
||||
hgt:165cm
|
||||
byr:1955 hcl:#602927
|
||||
|
||||
byr:2014 hcl:z iyr:2029 cid:279 pid:28914607 hgt:75cm ecl:xry
|
||||
|
||||
hgt:156cm eyr:2023 iyr:2011 ecl:oth hcl:#7d3b0c pid:561313217 byr:1952
|
||||
|
||||
iyr:2011 byr:1935
|
||||
hcl:#cfa07d ecl:oth pid:830614209
|
||||
eyr:2028 hgt:173cm
|
||||
|
||||
iyr:2012 cid:210 eyr:2022
|
||||
pid:652810130 hcl:#18171d ecl:grn byr:1960 hgt:152cm
|
||||
|
||||
eyr:2026 pid:815848563 hgt:75in iyr:2019 ecl:gry byr:1947
|
||||
hcl:#cfa07d
|
||||
|
||||
cid:181 iyr:2012
|
||||
eyr:2024 byr:1934 hcl:#c0946f
|
||||
hgt:165cm ecl:oth pid:232944581
|
||||
|
||||
cid:135 iyr:2020
|
||||
byr:1971 hcl:#733820 pid:531877857 hgt:179cm eyr:2027 ecl:amb
|
||||
|
||||
byr:1987 hcl:936807 eyr:2032 ecl:#4bec4a pid:605628619 cid:180 hgt:150in
|
||||
iyr:2015
|
||||
|
||||
hcl:b62ef0 ecl:#092141
|
||||
pid:876635399 byr:1944 hgt:158cm iyr:2017 eyr:1924
|
||||
|
||||
iyr:2016 pid:7039815301 byr:2014 hgt:150 eyr:2032 ecl:blu hcl:z
|
||||
|
||||
byr:1979 eyr:2030 iyr:1978 hgt:63 pid:1554613758 hcl:z ecl:amb
|
||||
|
||||
hgt:70cm hcl:e45897 iyr:2020 eyr:1977 ecl:dne pid:2878189427 byr:1973
|
||||
|
||||
iyr:2003
|
||||
hcl:#cfa07d
|
||||
pid:260517078
|
||||
byr:2030 hgt:175cm eyr:2020
|
||||
ecl:brn
|
||||
|
||||
pid:460604681 eyr:2022
|
||||
cid:138 iyr:2016 hgt:163cm
|
||||
byr:1922
|
||||
hcl:#ceb3a1 ecl:oth
|
||||
|
||||
hgt:167cm byr:2009 eyr:1975 cid:295 pid:174cm iyr:2029
|
||||
hcl:z
|
||||
|
||||
hgt:67in ecl:grn
|
||||
eyr:2023
|
||||
cid:122 pid:281246917 byr:1990 iyr:2011 hcl:#866857
|
||||
|
||||
ecl:#ed7ddc byr:1922 cid:234 hcl:e61b1e iyr:1932 eyr:1996 pid:31344005 hgt:62cm
|
||||
|
||||
byr:1949
|
||||
cid:275 iyr:2017 ecl:grn
|
||||
hgt:164cm eyr:2027 hcl:#18171d
|
||||
pid:751342937
|
||||
|
||||
ecl:blu hgt:162cm
|
||||
pid:432600613 byr:1923 eyr:2029 iyr:2011 hcl:#623a2f cid:315
|
||||
|
||||
iyr:2020
|
||||
hcl:#b2bb11 pid:055891584 ecl:grn
|
||||
hgt:67in
|
||||
eyr:2029 byr:1937
|
||||
|
||||
iyr:2012
|
||||
hcl:#a97842 pid:325640714 ecl:blu hgt:185cm eyr:2024 byr:1971
|
||||
|
||||
hcl:#b6652a pid:485327267
|
||||
ecl:brn hgt:155cm eyr:2028
|
||||
iyr:2019
|
||||
|
||||
pid:902164867 hgt:77 cid:283 eyr:2027
|
||||
iyr:2020 ecl:hzl byr:1935 hcl:#efcc98
|
||||
|
||||
ecl:grn
|
||||
hcl:#ceb3a1 byr:1977 hgt:165cm
|
||||
pid:850700221 eyr:2030
|
||||
iyr:2012
|
||||
|
||||
byr:1989 ecl:brn eyr:2026 pid:919138357 iyr:2016
|
||||
hcl:#623a2f cid:319 hgt:161cm
|
||||
|
||||
iyr:2017
|
||||
byr:1973 pid:293382118 hcl:#341e13 cid:143 ecl:hzl
|
||||
hgt:166cm eyr:2022
|
||||
|
||||
pid:517102798
|
||||
hcl:f9d9dd
|
||||
eyr:1933 iyr:2019 hgt:164cm
|
||||
byr:2017 ecl:utc
|
||||
|
||||
eyr:2023 pid:757868802 hcl:#18171d cid:244
|
||||
hgt:156cm
|
||||
ecl:blu iyr:2015 byr:1926
|
||||
|
||||
eyr:2022
|
||||
iyr:2020
|
||||
hgt:158cm ecl:grn
|
||||
byr:1988
|
||||
pid:979194751 hcl:#888785
|
||||
|
||||
eyr:2039
|
||||
pid:3867868142 byr:1936 ecl:dne iyr:2022 hcl:4b43b8
|
||||
hgt:115 cid:241
|
||||
|
||||
iyr:2015 eyr:2026
|
||||
hcl:#ceb3a1 pid:539099924
|
||||
cid:234
|
||||
ecl:brn
|
||||
byr:1920 hgt:163cm
|
||||
|
||||
cid:259 iyr:2020
|
||||
pid:949453818 eyr:2022 hgt:181cm
|
||||
byr:1997 ecl:blu hcl:#18171d
|
||||
|
||||
byr:2016
|
||||
iyr:2012
|
||||
ecl:utc
|
||||
hgt:68in eyr:1993
|
||||
pid:1542134802 hcl:486699
|
||||
cid:239
|
||||
|
||||
iyr:2018
|
||||
hgt:154cm ecl:brn byr:1970
|
||||
eyr:2021 pid:581775861 hcl:#888785
|
||||
|
||||
iyr:2012
|
||||
eyr:2027 hgt:67cm hcl:#efcc98 ecl:zzz pid:312104916 byr:2020
|
||||
|
||||
hcl:#b6652a ecl:hzl eyr:2023 iyr:2012 pid:513268492
|
||||
hgt:159cm
|
||||
|
||||
hgt:162in hcl:z
|
||||
byr:2029
|
||||
eyr:2023 ecl:#e2e7ab iyr:2016 pid:65979982
|
||||
|
||||
cid:84 hgt:71in ecl:blu pid:982719716
|
||||
eyr:2020 iyr:2014
|
||||
|
||||
eyr:2028 hgt:181cm
|
||||
ecl:hzl pid:255796693 hcl:#341e13 byr:1994 iyr:2011 cid:218
|
||||
|
||||
ecl:blu
|
||||
byr:2029 iyr:2017 pid:468504566 eyr:2020 hcl:z hgt:163cm
|
||||
|
||||
hgt:158cm
|
||||
eyr:2025 ecl:hzl cid:295 pid:601339484
|
||||
hcl:#7d3b0c byr:1991 iyr:2013
|
||||
|
||||
eyr:2028
|
||||
iyr:2018 pid:2236240873
|
||||
hgt:172cm
|
||||
ecl:#0e337e hcl:#b6652a cid:108 byr:1930
|
||||
|
||||
ecl:gry hcl:#888785
|
||||
eyr:2020 pid:442479017 iyr:2016
|
||||
|
||||
iyr:2014 ecl:grn
|
||||
cid:313 eyr:2023
|
||||
hgt:183cm
|
||||
byr:1976
|
||||
pid:499580308 hcl:#53efe6
|
||||
|
||||
eyr:2034
|
||||
cid:235 hcl:8f3cf5
|
||||
byr:2027
|
||||
hgt:161in pid:3259965094 ecl:xry iyr:2026
|
||||
|
||||
eyr:1978 byr:1925 iyr:2018 hgt:170cm ecl:#0c94e8
|
||||
pid:562699017 hcl:#816949
|
||||
|
||||
eyr:2023 hcl:#866857 hgt:179cm
|
||||
pid:785862442 iyr:2014 cid:165 ecl:amb byr:1939
|
||||
|
||||
hgt:187cm
|
||||
pid:64469711 ecl:gry eyr:2023 cid:225 hcl:#341e13 iyr:2011 byr:1958
|
||||
|
||||
hgt:162cm byr:2028 ecl:#37e345
|
||||
eyr:2037 hcl:19fb3d
|
||||
iyr:2021
|
||||
pid:#87921a
|
||||
|
||||
eyr:2027 hcl:#18171d
|
||||
byr:2002 ecl:gry iyr:2014
|
||||
pid:561506850 hgt:177cm
|
||||
|
||||
hgt:64cm pid:#a92686
|
||||
eyr:2029 cid:122
|
||||
byr:2026
|
||||
iyr:2017 hcl:z ecl:grn
|
||||
|
||||
eyr:2028 byr:2007 hgt:155cm ecl:#86fa1b hcl:#733820 pid:562889497
|
||||
iyr:2019
|
||||
|
||||
pid:880698787
|
||||
byr:1992
|
||||
hcl:#7d3b0c hgt:163cm ecl:hzl
|
||||
iyr:2011 eyr:2021
|
||||
|
||||
eyr:2020 byr:1994 iyr:2011 hgt:186cm pid:841855425 hcl:#cfa07d ecl:gry
|
||||
|
||||
byr:1923 iyr:2015 ecl:amb pid:414655744
|
||||
hcl:#b6652a
|
||||
hgt:159cm
|
||||
eyr:2026
|
||||
|
||||
hgt:171cm ecl:amb pid:363065723 iyr:2020
|
||||
cid:66 hcl:#b6652a eyr:2021
|
||||
byr:1960
|
||||
|
||||
eyr:2002
|
||||
hcl:2627b2 ecl:#1bf21d pid:168cm byr:2024 iyr:2020
|
||||
hgt:186in
|
||||
|
||||
iyr:2011 byr:1924 eyr:2024
|
||||
hcl:#b6652a ecl:brn
|
||||
pid:794477411 hgt:162in
|
||||
|
||||
hcl:z hgt:67cm
|
||||
byr:2025
|
||||
pid:582569979
|
||||
iyr:2013
|
||||
ecl:oth eyr:2025
|
||||
|
||||
cid:50 hcl:931e2c
|
||||
hgt:172in eyr:1994 iyr:2023
|
||||
ecl:#cd2204
|
||||
byr:2015
|
||||
pid:157cm
|
||||
|
||||
hgt:173cm eyr:2028
|
||||
ecl:amb pid:569607283
|
||||
byr:1942
|
||||
iyr:2019
|
||||
cid:228
|
||||
hcl:#866857
|
||||
|
||||
cid:109
|
||||
ecl:oth eyr:1933 byr:1982 pid:173cm hcl:#b6652a hgt:174cm
|
||||
iyr:2023
|
||||
|
||||
cid:69 hcl:#9ad05b pid:341135641
|
||||
byr:1968 ecl:brn
|
||||
iyr:2012 hgt:156cm
|
||||
eyr:2020
|
||||
|
||||
hgt:176cm
|
||||
byr:1954 ecl:blu
|
||||
eyr:2020
|
||||
pid:478462637 iyr:2019
|
||||
hcl:#888785
|
||||
|
||||
iyr:2026 hgt:193in
|
||||
byr:2018 pid:162cm hcl:605e7f eyr:1948 ecl:utc
|
||||
|
||||
byr:1962
|
||||
eyr:2022 pid:445346117 iyr:2019 hgt:158cm hcl:#623a2f ecl:hzl
|
||||
|
||||
cid:278 hgt:187cm eyr:2024 iyr:2016 byr:1964
|
||||
ecl:grn pid:450739552 hcl:#733820
|
||||
|
||||
ecl:grn byr:2000 eyr:2023
|
||||
pid:344489911 hcl:#7d3b0c iyr:2011 hgt:177cm
|
||||
|
||||
iyr:2015 hgt:180cm cid:190 hcl:#a97842 pid:359774842 eyr:2029 byr:2002 ecl:amb
|
||||
|
||||
eyr:2027 iyr:2015 ecl:hzl
|
||||
pid:082733109
|
||||
byr:1975 hgt:191cm cid:251 hcl:#888785
|
||||
|
||||
hcl:#c0946f iyr:2015
|
||||
hgt:167cm byr:1990 ecl:amb pid:168cm eyr:2023
|
||||
|
||||
ecl:gry eyr:2028
|
||||
byr:1934 iyr:2013 hcl:#6b5442
|
||||
pid:424412120 hgt:173cm
|
||||
|
||||
pid:273352568
|
||||
eyr:2024
|
||||
iyr:2013 byr:1926 hcl:#602927
|
||||
ecl:brn hgt:180cm
|
||||
|
||||
hcl:#7d3b0c hgt:70in ecl:amb iyr:2019
|
||||
byr:1937
|
||||
eyr:2030 pid:309011548
|
||||
|
||||
ecl:grn
|
||||
hgt:64in pid:796889811 hcl:#18171d
|
||||
byr:1929 eyr:2027
|
||||
|
||||
ecl:amb hcl:#888785
|
||||
pid:412449028 cid:316 byr:1982
|
||||
iyr:2019 eyr:2030 hgt:193cm
|
||||
|
||||
eyr:1927
|
||||
hcl:z hgt:158cm byr:1930
|
||||
ecl:lzr iyr:2018
|
||||
cid:197
|
||||
pid:0906120002
|
||||
|
||||
ecl:grn byr:1970 hgt:181cm
|
||||
pid:376212702 eyr:2030 iyr:2017 cid:266 hcl:#f8b0f5
|
||||
|
||||
iyr:2018 hgt:73in pid:652356158 hcl:#c0946f
|
||||
ecl:grn byr:1973
|
||||
|
||||
cid:170 hcl:#b6652a byr:2011
|
||||
ecl:gry iyr:2025 pid:#b6e567 hgt:67cm eyr:2016
|
||||
|
||||
hgt:192cm ecl:amb eyr:2026 pid:201824712 hcl:#888785 byr:1966 iyr:2019
|
||||
|
||||
iyr:2013 byr:1995 eyr:2028 hcl:#b6652a ecl:brn cid:53 pid:705606447 hgt:176cm
|
||||
|
||||
hcl:#341e13 byr:1951
|
||||
hgt:161cm pid:231973770 iyr:2015 ecl:hzl
|
||||
eyr:2030
|
||||
|
||||
cid:210 ecl:brn iyr:2017 eyr:2030
|
||||
hgt:176cm hcl:#efcc98
|
||||
byr:1965
|
||||
|
||||
eyr:2020 hcl:#7d3b0c
|
||||
pid:872088079 ecl:oth iyr:2017 byr:1920
|
||||
hgt:180cm
|
||||
|
||||
hcl:#0b540c iyr:2019
|
||||
byr:1938
|
||||
hgt:153cm ecl:gry pid:236785988
|
||||
eyr:2020
|
||||
|
||||
eyr:2020 hgt:184cm iyr:2019
|
||||
pid:673186642 ecl:oth byr:1977 hcl:#866857
|
||||
|
||||
eyr:2025
|
||||
ecl:gry hcl:#341e13 byr:1970 iyr:2010 pid:972122542 hgt:184cm
|
||||
|
||||
ecl:grn byr:1992 hgt:71in
|
||||
iyr:2014 cid:254 hcl:#fffffd pid:749733013
|
||||
eyr:2026
|
||||
|
||||
cid:98 ecl:amb eyr:2022
|
||||
hgt:169cm pid:022677680
|
||||
byr:1937 iyr:2014 hcl:#e62c71
|
||||
|
||||
hgt:192cm
|
||||
iyr:2015
|
||||
eyr:2028 ecl:oth pid:6000619833 hcl:#c0946f
|
||||
byr:1930
|
||||
|
||||
byr:1938 hcl:#efcc98 hgt:178cm iyr:1953 eyr:2038
|
||||
ecl:brn pid:#cdc55a
|
||||
|
||||
hgt:66in byr:1951 iyr:2016 hcl:#18171d
|
||||
eyr:2027
|
||||
ecl:lzr pid:834188980
|
||||
|
||||
iyr:2012 eyr:2025
|
||||
hcl:#7d3b0c pid:330325803 cid:166 hgt:186cm byr:1938
|
||||
ecl:amb
|
||||
|
||||
iyr:2015 hcl:#602927 cid:268 eyr:2021
|
||||
ecl:amb hgt:186cm pid:318676962
|
||||
|
||||
hcl:#3d6f3c iyr:2014 pid:665730784 cid:191 hgt:150cm byr:1981 ecl:oth eyr:2024
|
||||
|
||||
ecl:grn hcl:#733820
|
||||
eyr:2028 iyr:2010
|
||||
hgt:162cm byr:1944 pid:872962499
|
||||
|
||||
eyr:2028 byr:1974
|
||||
ecl:brn
|
||||
iyr:2010 hcl:#18171d hgt:160cm
|
||||
|
||||
hcl:#602927
|
||||
byr:1959 eyr:2027 iyr:2016 ecl:brn hgt:169cm pid:078503025
|
||||
|
||||
hcl:#623a2f pid:326300051 hgt:153cm
|
||||
byr:1973 iyr:2012
|
||||
ecl:gry eyr:2026
|
||||
|
||||
hgt:151cm
|
||||
byr:1966 eyr:2029 pid:026952622 hcl:#18171d ecl:gry iyr:2010
|
||||
|
||||
hcl:#7d3b0c byr:1974 pid:444713591 iyr:2017 eyr:2030
|
||||
hgt:165cm ecl:oth
|
||||
|
||||
iyr:2026 pid:184cm
|
||||
ecl:gmt hcl:z hgt:71cm
|
||||
eyr:2029
|
||||
|
||||
cid:310 hcl:#fffffd byr:1998
|
||||
pid:450705840 iyr:2015
|
||||
ecl:grn eyr:2021 hgt:165cm
|
||||
|
||||
byr:1939 hcl:#623a2f ecl:gry hgt:69in pid:539812641 eyr:2027 iyr:2013
|
||||
|
||||
pid:207645014
|
||||
iyr:2015
|
||||
cid:314 ecl:oth
|
||||
byr:1942
|
||||
eyr:2027 hgt:186cm hcl:#fffffd
|
||||
|
||||
ecl:#fb7e3d eyr:2031 iyr:1956
|
||||
hgt:188 pid:160cm hcl:z byr:2027
|
||||
|
||||
byr:1972 iyr:2020 eyr:2026 hcl:#b6652a pid:289088329 hgt:65in ecl:gry
|
||||
|
||||
eyr:2027
|
||||
hgt:59cm
|
||||
byr:2022
|
||||
pid:938063769 ecl:zzz iyr:2028 hcl:23c762
|
||||
|
||||
byr:2004 hgt:74 iyr:2017
|
||||
eyr:2040 ecl:blu pid:4611117799 cid:73 hcl:z
|
||||
|
||||
ecl:brn byr:1962 cid:321
|
||||
iyr:2019 eyr:2026
|
||||
hgt:159cm
|
||||
hcl:#667310 pid:439864945
|
||||
|
||||
iyr:2026 eyr:2039 pid:633263851 cid:321 ecl:lzr hgt:166cm
|
||||
byr:2023 hcl:fc3c63
|
||||
|
||||
byr:1961 iyr:2010 ecl:blu
|
||||
eyr:2023 pid:245858010
|
||||
|
||||
hgt:193cm pid:821303249 eyr:2020 hcl:#6b5442 cid:130 byr:1946
|
||||
|
||||
eyr:2026 ecl:brn
|
||||
hcl:#733820 byr:1983 hgt:182cm pid:727380954 cid:188 iyr:2015
|
||||
|
||||
hgt:152cm cid:206 iyr:2012 byr:1947 hcl:#888785 ecl:gry
|
||||
pid:720312394 eyr:2023
|
||||
|
||||
hgt:150cm ecl:gry pid:863712648
|
||||
iyr:2019 cid:349 byr:1976 hcl:#602927 eyr:2022
|
||||
|
||||
hgt:164in pid:953500867
|
||||
eyr:2021
|
||||
iyr:2014
|
||||
hcl:z cid:343 ecl:amb
|
||||
|
||||
byr:1981 pid:529710230 iyr:2013 eyr:2023
|
||||
hcl:#c0946f ecl:amb
|
||||
hgt:151cm
|
||||
|
||||
pid:706204190 hgt:154cm cid:317
|
||||
hcl:#602927 byr:1949 ecl:blu iyr:2010 eyr:2028
|
||||
|
||||
iyr:2019 hcl:#0219e6
|
||||
pid:850093151 ecl:gry
|
||||
eyr:2030
|
||||
byr:1938 hgt:177cm
|
||||
|
||||
ecl:brn hcl:#efcc98 eyr:2029 byr:1963
|
||||
hgt:185cm pid:611279647 iyr:2011
|
||||
|
||||
ecl:blu eyr:2022 byr:1941 hgt:167cm
|
||||
iyr:2012 hcl:#7d3b0c pid:415739564
|
||||
cid:193
|
||||
|
||||
eyr:2027 ecl:blu byr:1968 pid:479994566
|
||||
hcl:#733820 hgt:151cm
|
||||
iyr:2011
|
||||
|
||||
pid:263729839 hgt:189cm eyr:2030 ecl:gry byr:2001 hcl:#602927
|
||||
|
||||
byr:1985
|
||||
ecl:amb pid:672663977 cid:139
|
||||
hgt:159cm hcl:#733820 iyr:2018 eyr:2020
|
||||
|
||||
byr:1998
|
||||
hcl:#cfa07d eyr:2023 pid:255046063 iyr:2011 ecl:blu hgt:177cm
|
||||
|
||||
ecl:oth
|
||||
byr:1980 pid:253747166 eyr:2029
|
||||
hcl:#6b5442 hgt:186cm
|
||||
|
||||
eyr:2030 hcl:#866857
|
||||
hgt:165cm
|
||||
ecl:amb
|
||||
iyr:2017 pid:241240220 cid:164 byr:2001
|
||||
|
||||
byr:1994 hcl:#b6652a iyr:2015
|
||||
pid:753831241
|
||||
hgt:175cm
|
||||
eyr:2027 ecl:blu
|
||||
|
||||
hcl:#b6652a pid:471594512
|
||||
byr:1961 ecl:hzl hgt:175cm
|
||||
iyr:2020 eyr:2025
|
||||
|
||||
byr:1987 pid:112366159
|
||||
eyr:2028 hcl:22b2d7
|
||||
hgt:64in cid:222
|
||||
ecl:#b40dca iyr:2019
|
||||
|
||||
iyr:2015 hcl:e1ed55 hgt:160in ecl:utc byr:2015 eyr:2036
|
||||
|
||||
byr:1935
|
||||
hcl:#7d3b0c hgt:152cm ecl:gry
|
||||
pid:160090332 iyr:2020 eyr:2020
|
||||
|
||||
pid:552779024 byr:1998 hgt:185cm ecl:gry eyr:2026 iyr:2013 hcl:#d46cd6
|
||||
|
||||
ecl:oth pid:311860969
|
||||
cid:57
|
||||
hgt:60in
|
||||
eyr:2026
|
||||
hcl:#ceb3a1
|
||||
byr:1961 iyr:2011
|
||||
|
||||
eyr:2021 hgt:162cm cid:240
|
||||
pid:259997995
|
||||
hcl:#efcc98
|
||||
ecl:gry byr:1962 iyr:2017
|
||||
|
||||
hcl:#866857
|
||||
iyr:2016
|
||||
eyr:2029
|
||||
ecl:blu byr:1927 cid:249 pid:665324615 hgt:65in
|
||||
|
||||
byr:1931
|
||||
cid:331
|
||||
hgt:66in
|
||||
ecl:grn iyr:2020 hcl:#efcc98 eyr:2025 pid:175780921
|
||||
|
||||
hgt:98
|
||||
eyr:2040 ecl:blu byr:2029
|
||||
iyr:1967 hcl:0d76e9
|
||||
pid:#c9053a cid:296
|
||||
|
||||
pid:370918950
|
||||
hcl:#602927
|
||||
byr:1938
|
||||
hgt:178cm iyr:2018 eyr:2030
|
||||
ecl:oth
|
||||
|
||||
hgt:185cm
|
||||
eyr:1984 ecl:oth pid:851080398
|
||||
hcl:z byr:2027 iyr:2017
|
||||
|
||||
pid:095078224 byr:1957 hcl:#45bcf4 ecl:#f643f9 hgt:63cm eyr:2036 iyr:1978
|
||||
|
||||
hcl:z
|
||||
eyr:2023 ecl:oth hgt:162cm
|
||||
iyr:2016 byr:1938 pid:#fdcddf
|
||||
|
||||
hcl:#341e13 iyr:2013 hgt:189cm
|
||||
pid:982271041 ecl:brn
|
||||
byr:1930 eyr:2030
|
||||
|
||||
eyr:2026
|
||||
iyr:2012 hcl:#cfa07d cid:59 pid:105862717 ecl:blu
|
||||
hgt:159cm byr:1943
|
||||
|
||||
ecl:hzl
|
||||
pid:604172804 iyr:2016 hgt:174cm cid:79 eyr:2025
|
||||
hcl:#733820 byr:1994
|
||||
|
||||
iyr:2011 pid:452628771 ecl:gry hgt:182cm hcl:#623a2f
|
||||
eyr:2023
|
||||
byr:1986
|
||||
|
||||
hcl:#341e13 iyr:2010 byr:1946 eyr:2021
|
||||
cid:350 pid:049684494 hgt:180cm
|
||||
ecl:grn
|
||||
|
||||
iyr:2020
|
||||
hgt:173cm pid:384503937
|
||||
byr:1986
|
||||
hcl:#341e13
|
||||
cid:113
|
||||
eyr:2025 ecl:amb
|
||||
|
||||
hgt:180cm byr:1949
|
||||
hcl:#733820 iyr:2010 eyr:2030
|
||||
cid:123 pid:065609606 ecl:oth
|
||||
|
||||
iyr:2010 eyr:2028
|
||||
pid:231750173
|
||||
hgt:63in ecl:brn
|
||||
byr:1948 hcl:#18171d
|
||||
|
||||
iyr:2020 hcl:#623a2f
|
||||
ecl:gry
|
||||
byr:1922 pid:961213634 eyr:2022 hgt:177cm
|
||||
|
||||
hcl:#18171d eyr:2020 iyr:2014 byr:1983
|
||||
pid:183568344 hgt:72in
|
||||
ecl:gry
|
||||
|
||||
eyr:2023 pid:102781246 ecl:brn
|
||||
hcl:#888785 byr:1929 hgt:167cm iyr:2010
|
||||
|
||||
pid:362873066 byr:1994 hcl:#de545f iyr:2018 hgt:177cm ecl:blu cid:86
|
||||
eyr:2024
|
||||
|
||||
hcl:842f2d iyr:1983
|
||||
byr:1954 eyr:2037
|
||||
ecl:lzr pid:3915492573 hgt:166cm
|
||||
|
||||
ecl:grn
|
||||
hcl:#fffffd iyr:2014
|
||||
hgt:173cm
|
||||
byr:1939
|
||||
pid:930650489
|
||||
eyr:2025
|
||||
|
||||
eyr:2028 ecl:brn hcl:#7d3b0c hgt:166cm byr:1938 pid:992958531 iyr:2011
|
||||
|
||||
pid:101149939 eyr:2024 iyr:2018 hgt:165cm
|
||||
ecl:hzl
|
||||
hcl:#ceb3a1 cid:176
|
||||
|
||||
cid:62
|
||||
pid:651390352 hcl:#efcc98
|
||||
iyr:2018
|
||||
eyr:2027
|
||||
ecl:brn
|
||||
hgt:66in byr:1953
|
||||
|
||||
hcl:#623a2f byr:1978
|
||||
iyr:2013
|
||||
hgt:180cm eyr:2027 ecl:amb pid:836425641
|
||||
|
||||
pid:557464096 hgt:155cm ecl:blu cid:142 byr:1936 iyr:2010
|
||||
hcl:#cfa07d eyr:2027
|
||||
|
||||
ecl:gry iyr:2024 hcl:#341e13 pid:442593279 cid:314 hgt:186cm byr:1960
|
||||
eyr:2022
|
||||
|
||||
cid:123 iyr:2014
|
||||
byr:2000
|
||||
pid:878733390 eyr:2021 ecl:hzl hgt:162cm
|
||||
|
||||
byr:1959 cid:259
|
||||
pid:722895016
|
||||
ecl:brn iyr:2018 eyr:2027 hgt:185cm
|
||||
|
||||
pid:163697814 ecl:hzl
|
||||
iyr:2013 byr:1932
|
||||
hgt:68in cid:286 eyr:2025 hcl:#efcc98
|
||||
|
||||
byr:1927
|
||||
hgt:72cm ecl:oth
|
||||
eyr:2021 hcl:#99e959
|
||||
pid:669724466 iyr:2010
|
||||
|
||||
byr:1943 iyr:2011 eyr:2024 pid:384419879 ecl:hzl hcl:#7d3b0c hgt:170cm
|
||||
|
||||
pid:137944386 ecl:gry
|
||||
byr:1953 hcl:#733820 iyr:2013 eyr:2025 hgt:184cm
|
||||
|
||||
iyr:2017 eyr:2023 pid:288078785
|
||||
hgt:179cm
|
||||
byr:1993 hcl:#602927 ecl:hzl
|
||||
|
||||
ecl:brn
|
||||
hgt:187cm eyr:2024 byr:1971 iyr:2020 hcl:#b6652a pid:622975646
|
||||
cid:290
|
||||
|
||||
pid:371817422 ecl:blu byr:1964
|
||||
iyr:2018
|
||||
eyr:2021 cid:176
|
||||
hgt:153cm hcl:#888785
|
||||
|
||||
byr:2002
|
||||
cid:256 iyr:2014 eyr:2024 ecl:blu hcl:#18171d hgt:187cm
|
||||
pid:050022911
|
||||
|
||||
hgt:178cm pid:211144001 eyr:2027 iyr:2013
|
||||
byr:1947
|
||||
hcl:#7d3b0c ecl:grn
|
||||
|
||||
eyr:2025 ecl:blu pid:046417901 byr:1950
|
||||
iyr:2015 hgt:165cm
|
||||
hcl:#7d3b0c cid:128
|
||||
|
||||
ecl:hzl eyr:2029
|
||||
iyr:2015
|
||||
hgt:171cm hcl:#341e13
|
||||
pid:561680375 byr:1997
|
||||
|
||||
byr:1948 iyr:2023 pid:17288381 hcl:6a34a3 ecl:#671ece eyr:2001
|
||||
cid:152
|
||||
|
||||
eyr:2036 hgt:141 iyr:1957 byr:1987 hcl:z
|
||||
pid:86986187 ecl:utc
|
||||
|
||||
eyr:2024 hcl:#b6652a iyr:2017 ecl:blu byr:1988 cid:348 hgt:152cm pid:068684272
|
||||
|
||||
iyr:2011 pid:989825275
|
||||
cid:78 hcl:#341e13 byr:1983 ecl:blu hgt:158cm eyr:2020
|
||||
|
||||
ecl:grn hgt:187cm eyr:2027 iyr:2015
|
||||
hcl:#866857 pid:240650427
|
||||
byr:1940
|
||||
cid:91
|
||||
|
||||
hcl:#888785 cid:185 byr:1925
|
||||
hgt:155cm iyr:2015 ecl:blu eyr:2027 pid:851697441
|
||||
|
||||
iyr:2016 ecl:oth pid:056439470 byr:1985 eyr:2026
|
||||
hgt:154cm hcl:#282539
|
||||
|
||||
ecl:hzl hcl:#a97842
|
||||
iyr:1944
|
||||
pid:118846711 eyr:2026 byr:1922 hgt:185cm
|
||||
|
||||
iyr:2020 hcl:#733820
|
||||
pid:854531642 hgt:165cm
|
||||
ecl:hzl eyr:2022
|
||||
|
||||
iyr:2014
|
||||
byr:1957 hcl:#7fa674 hgt:189cm
|
||||
eyr:2023 pid:740871941 ecl:brn
|
||||
|
||||
ecl:amb cid:349 hgt:170cm
|
||||
byr:1952 hcl:#ceb3a1 iyr:2020
|
||||
eyr:2026
|
||||
pid:730499325
|
||||
|
||||
eyr:2027 ecl:amb
|
||||
byr:1975 pid:985687961
|
||||
hcl:z hgt:157cm
|
||||
iyr:2013
|
||||
cid:133
|
||||
|
||||
ecl:blu
|
||||
hgt:193cm iyr:2015 hcl:#10f2ba byr:1989 pid:939704495 eyr:2021
|
||||
|
||||
ecl:oth eyr:2025 hgt:69in iyr:2014 cid:258 pid:477970733 byr:1984 hcl:#b6652a
|
||||
|
||||
hcl:z byr:2013
|
||||
ecl:zzz
|
||||
pid:1904741884 hgt:180 cid:138 eyr:1985 iyr:1935
|
||||
|
||||
eyr:2025
|
||||
iyr:2026 hgt:190in pid:#43ca33
|
||||
ecl:#3e1ef1 hcl:#7d3b0c byr:2030
|
||||
|
||||
eyr:2029 hgt:191cm
|
||||
byr:1986 hcl:#ceb3a1 cid:327 pid:795060714 iyr:2012 ecl:hzl
|
||||
|
||||
eyr:2025 iyr:2017 ecl:grn
|
||||
hcl:z
|
||||
pid:8886398 hgt:174cm byr:2016
|
||||
|
||||
hcl:#a97842
|
||||
eyr:2021 ecl:grn iyr:2013 pid:565234133 byr:1998
|
||||
hgt:161cm
|
||||
|
||||
eyr:2029 hgt:163cm byr:1933 cid:86 iyr:2011
|
||||
ecl:grn
|
||||
hcl:#fffffd
|
||||
pid:818769307
|
||||
|
||||
hgt:190cm eyr:2030 hcl:#af5b5d iyr:2011 ecl:brn pid:359524299 byr:1969
|
||||
|
||||
ecl:amb iyr:2011 eyr:2022
|
||||
cid:141
|
||||
byr:1978 hgt:69in hcl:#fffffd pid:013006109
|
||||
|
||||
ecl:blu hgt:164cm iyr:2019 eyr:2027 pid:899103430 hcl:#cfa07d
|
||||
byr:1976
|
||||
|
||||
eyr:1938
|
||||
ecl:#a03c41 pid:708735698
|
||||
iyr:2030
|
||||
hgt:184cm hcl:#b6652a byr:2013
|
||||
|
||||
ecl:hzl byr:1997 hcl:#a97842 cid:60 pid:172cm
|
||||
eyr:2023 hgt:161in iyr:1936
|
||||
|
||||
ecl:hzl
|
||||
byr:1938 pid:094889181
|
||||
hgt:162cm iyr:2020
|
||||
eyr:2028
|
||||
hcl:#623a2f
|
||||
|
||||
hgt:162cm cid:86
|
||||
hcl:#623a2f pid:738174580 ecl:brn byr:1980 eyr:2028 iyr:2014
|
||||
|
||||
byr:2007 hgt:150in hcl:z
|
||||
eyr:2032
|
||||
ecl:#114f3b
|
||||
iyr:2030 pid:5129772
|
||||
|
||||
ecl:hzl iyr:2017
|
||||
hcl:#18171d
|
||||
pid:696283412 byr:1976 hgt:168cm
|
||||
eyr:2028
|
||||
|
||||
eyr:1922 ecl:#84b0d4 byr:2013 hcl:#ceb3a1 pid:150cm iyr:2030
|
||||
hgt:71cm
|
||||
|
||||
hgt:164cm byr:1949 ecl:gry eyr:2026
|
||||
hcl:#623a2f
|
||||
|
||||
ecl:oth
|
||||
iyr:2013 hgt:166cm hcl:#50e385
|
||||
pid:478852286
|
||||
eyr:2030 byr:1930
|
||||
|
||||
cid:129
|
||||
iyr:2020 byr:1978 pid:907580992 eyr:1955
|
||||
hcl:#602927
|
||||
ecl:grn hgt:165cm
|
||||
|
||||
ecl:blu iyr:2018 byr:1953
|
||||
hgt:177cm pid:126681706 eyr:2025 hcl:#c0946f
|
||||
|
||||
byr:1984 pid:275799917
|
||||
ecl:oth hcl:#623a2f cid:348 iyr:2020
|
||||
hgt:189cm eyr:2024
|
||||
|
||||
iyr:2016
|
||||
ecl:hzl byr:1954
|
||||
hcl:#623a2f pid:810508839 eyr:2026
|
||||
hgt:185cm
|
||||
|
||||
byr:1967
|
||||
eyr:2021 hcl:#ceb3a1
|
||||
pid:406634908 hgt:158cm iyr:2018 ecl:hzl
|
||||
|
||||
iyr:2019 eyr:2030 pid:995681076 hcl:#341e13
|
||||
cid:101 hgt:162cm ecl:blu byr:1925
|
||||
|
||||
eyr:2026 pid:272513479 hcl:#b6652a byr:1973 iyr:2016 ecl:amb hgt:182cm
|
||||
|
||||
pid:298704871 eyr:2024 hcl:#efcc98 byr:1959
|
||||
iyr:2014 hgt:191cm ecl:grn
|
||||
|
||||
hgt:193cm pid:750729809 ecl:oth
|
||||
cid:324
|
||||
iyr:2011 hcl:#efcc98 byr:1954 eyr:2020
|
||||
|
||||
byr:1966 iyr:2019 eyr:2025 ecl:#2df4b6
|
||||
hgt:184cm pid:#fc17f4 cid:161 hcl:#602927
|
||||
|
||||
byr:1955 hcl:299464 ecl:amb
|
||||
hgt:157cm iyr:2017 eyr:2021
|
||||
pid:239450987
|
||||
|
||||
hgt:172cm
|
||||
ecl:hzl
|
||||
pid:839804598
|
||||
hcl:#341e13 eyr:2030 byr:1964 iyr:2013
|
||||
|
||||
iyr:2018 hgt:152cm byr:1948 hcl:#623a2f pid:400121515
|
||||
ecl:blu
|
||||
eyr:2020
|
||||
|
||||
cid:296
|
||||
ecl:grn
|
||||
byr:1960 iyr:2028 pid:#1f4b95 eyr:2033 hcl:#602927
|
||||
hgt:66cm
|
||||
|
||||
iyr:1933 ecl:#232e20 pid:#d03ca7
|
||||
eyr:2030 hcl:598ed6 hgt:154in byr:2011
|
||||
|
||||
cid:247 ecl:grn iyr:2014
|
||||
hgt:178cm
|
||||
byr:1992 hcl:#602927 eyr:2021
|
||||
pid:678964478
|
||||
|
||||
iyr:2010 pid:623705680
|
||||
ecl:hzl hgt:181cm byr:1980 hcl:#341e13 eyr:2028
|
|
@ -0,0 +1,643 @@
|
|||
acc -15
|
||||
jmp +164
|
||||
nop +157
|
||||
acc -12
|
||||
acc -19
|
||||
acc +41
|
||||
jmp +177
|
||||
acc +36
|
||||
acc +37
|
||||
nop +471
|
||||
jmp +433
|
||||
acc +24
|
||||
acc +13
|
||||
acc -12
|
||||
jmp +556
|
||||
jmp +1
|
||||
acc -15
|
||||
acc +33
|
||||
jmp +299
|
||||
jmp +344
|
||||
acc -3
|
||||
jmp +124
|
||||
acc +10
|
||||
nop +562
|
||||
acc +45
|
||||
jmp +386
|
||||
acc -3
|
||||
jmp +206
|
||||
acc -19
|
||||
acc +12
|
||||
jmp +424
|
||||
acc -18
|
||||
acc +23
|
||||
acc +12
|
||||
acc +0
|
||||
jmp +311
|
||||
nop +327
|
||||
jmp +301
|
||||
acc +20
|
||||
nop +375
|
||||
jmp +25
|
||||
acc -13
|
||||
acc +49
|
||||
acc +23
|
||||
acc -3
|
||||
jmp +346
|
||||
acc +2
|
||||
acc +3
|
||||
jmp +123
|
||||
acc -7
|
||||
nop +183
|
||||
jmp +165
|
||||
acc +47
|
||||
acc +34
|
||||
jmp +1
|
||||
jmp +359
|
||||
acc +12
|
||||
acc +16
|
||||
acc -3
|
||||
acc +0
|
||||
jmp +556
|
||||
acc +14
|
||||
acc -3
|
||||
jmp +559
|
||||
jmp +192
|
||||
jmp +495
|
||||
nop +264
|
||||
acc +3
|
||||
acc +47
|
||||
jmp +187
|
||||
acc -18
|
||||
jmp +1
|
||||
acc -12
|
||||
jmp -58
|
||||
acc +49
|
||||
nop +288
|
||||
jmp +145
|
||||
acc +46
|
||||
jmp +294
|
||||
acc +38
|
||||
nop +400
|
||||
jmp +373
|
||||
acc +7
|
||||
acc +31
|
||||
jmp +492
|
||||
acc +40
|
||||
acc +5
|
||||
acc +11
|
||||
jmp +263
|
||||
acc +29
|
||||
acc +10
|
||||
acc +21
|
||||
acc +14
|
||||
jmp +450
|
||||
nop +458
|
||||
acc +38
|
||||
nop +432
|
||||
acc +42
|
||||
jmp +191
|
||||
jmp +279
|
||||
nop +71
|
||||
acc -17
|
||||
jmp -64
|
||||
acc +17
|
||||
jmp +1
|
||||
acc +29
|
||||
jmp +506
|
||||
jmp +354
|
||||
acc +42
|
||||
acc +32
|
||||
jmp -40
|
||||
jmp +184
|
||||
acc +41
|
||||
acc -7
|
||||
acc +10
|
||||
acc +38
|
||||
jmp +100
|
||||
jmp +104
|
||||
jmp +245
|
||||
jmp +335
|
||||
jmp +20
|
||||
acc +3
|
||||
jmp +490
|
||||
jmp -62
|
||||
acc +34
|
||||
acc +34
|
||||
acc -1
|
||||
jmp +6
|
||||
acc +5
|
||||
acc -9
|
||||
acc -19
|
||||
jmp +397
|
||||
jmp +253
|
||||
acc +9
|
||||
jmp +270
|
||||
acc +8
|
||||
acc -16
|
||||
acc +32
|
||||
acc +48
|
||||
jmp +258
|
||||
acc +4
|
||||
acc +37
|
||||
nop +319
|
||||
jmp +318
|
||||
jmp -4
|
||||
acc -5
|
||||
jmp +32
|
||||
nop -86
|
||||
jmp +306
|
||||
acc -13
|
||||
acc +50
|
||||
acc -16
|
||||
jmp -53
|
||||
acc +31
|
||||
jmp +52
|
||||
acc -11
|
||||
jmp +89
|
||||
acc +21
|
||||
jmp +126
|
||||
acc +44
|
||||
acc +49
|
||||
nop +177
|
||||
jmp +44
|
||||
acc +8
|
||||
jmp +166
|
||||
acc +20
|
||||
acc -8
|
||||
acc +38
|
||||
acc +10
|
||||
jmp +311
|
||||
jmp +21
|
||||
acc -10
|
||||
nop +84
|
||||
acc -7
|
||||
acc +13
|
||||
jmp +78
|
||||
jmp +1
|
||||
jmp +366
|
||||
acc -6
|
||||
acc -12
|
||||
jmp -142
|
||||
nop +223
|
||||
jmp +42
|
||||
acc -6
|
||||
nop +227
|
||||
nop +193
|
||||
acc +23
|
||||
jmp +83
|
||||
acc -10
|
||||
acc +12
|
||||
jmp +1
|
||||
acc -8
|
||||
acc +3
|
||||
nop +28
|
||||
jmp +301
|
||||
acc +23
|
||||
jmp -170
|
||||
nop -79
|
||||
acc +21
|
||||
acc +37
|
||||
jmp +138
|
||||
acc +37
|
||||
acc +24
|
||||
nop +413
|
||||
acc -9
|
||||
jmp -179
|
||||
acc -1
|
||||
acc -10
|
||||
nop +261
|
||||
acc -19
|
||||
jmp +168
|
||||
acc -16
|
||||
acc +19
|
||||
acc +17
|
||||
acc +21
|
||||
jmp -9
|
||||
jmp +46
|
||||
acc +4
|
||||
nop +398
|
||||
acc +28
|
||||
jmp +396
|
||||
acc +11
|
||||
jmp +384
|
||||
jmp +375
|
||||
acc +25
|
||||
acc +30
|
||||
acc -11
|
||||
jmp +371
|
||||
jmp +249
|
||||
acc -10
|
||||
acc -15
|
||||
jmp -7
|
||||
jmp +38
|
||||
acc +29
|
||||
acc +15
|
||||
acc +46
|
||||
jmp -77
|
||||
acc +43
|
||||
jmp -83
|
||||
jmp -42
|
||||
acc +30
|
||||
acc +44
|
||||
acc +33
|
||||
acc +14
|
||||
jmp +326
|
||||
acc -3
|
||||
nop +49
|
||||
acc +12
|
||||
jmp +63
|
||||
acc -13
|
||||
acc -19
|
||||
acc -17
|
||||
jmp +126
|
||||
jmp +293
|
||||
acc +16
|
||||
jmp -185
|
||||
acc -12
|
||||
jmp -92
|
||||
acc -13
|
||||
acc +19
|
||||
acc -1
|
||||
jmp -138
|
||||
acc +28
|
||||
nop -243
|
||||
nop +352
|
||||
acc +43
|
||||
jmp +249
|
||||
acc -5
|
||||
acc +36
|
||||
jmp -217
|
||||
nop +197
|
||||
nop -106
|
||||
acc +30
|
||||
jmp +194
|
||||
acc +7
|
||||
acc -16
|
||||
nop +128
|
||||
jmp -239
|
||||
jmp -258
|
||||
acc +11
|
||||
nop -74
|
||||
acc +42
|
||||
acc +40
|
||||
jmp +72
|
||||
jmp -207
|
||||
nop +337
|
||||
nop -240
|
||||
nop -169
|
||||
jmp -55
|
||||
nop +165
|
||||
acc +27
|
||||
acc +4
|
||||
jmp -169
|
||||
acc -2
|
||||
jmp +69
|
||||
acc +0
|
||||
jmp -250
|
||||
acc +11
|
||||
acc +45
|
||||
acc +31
|
||||
jmp +195
|
||||
acc -10
|
||||
acc -8
|
||||
nop -283
|
||||
acc -2
|
||||
jmp +63
|
||||
acc +17
|
||||
acc +12
|
||||
acc +0
|
||||
nop +243
|
||||
jmp +190
|
||||
acc +17
|
||||
acc -18
|
||||
jmp +78
|
||||
acc +7
|
||||
acc +33
|
||||
jmp +244
|
||||
nop +29
|
||||
acc +20
|
||||
nop +150
|
||||
acc +29
|
||||
jmp -43
|
||||
acc +45
|
||||
nop -132
|
||||
acc +16
|
||||
acc +14
|
||||
jmp -237
|
||||
jmp -199
|
||||
acc -4
|
||||
jmp +179
|
||||
acc +13
|
||||
acc +15
|
||||
acc +6
|
||||
acc +46
|
||||
jmp -222
|
||||
acc -8
|
||||
acc +15
|
||||
jmp -26
|
||||
acc +38
|
||||
jmp +1
|
||||
nop +266
|
||||
jmp +44
|
||||
acc -13
|
||||
nop +209
|
||||
acc +21
|
||||
jmp +201
|
||||
acc +8
|
||||
acc +18
|
||||
jmp +190
|
||||
acc +35
|
||||
jmp -238
|
||||
jmp +69
|
||||
acc -11
|
||||
nop -182
|
||||
jmp -221
|
||||
acc -16
|
||||
acc -5
|
||||
acc +7
|
||||
jmp +39
|
||||
acc +26
|
||||
acc +43
|
||||
acc +20
|
||||
jmp +92
|
||||
acc +22
|
||||
jmp +81
|
||||
acc +32
|
||||
acc -13
|
||||
jmp +30
|
||||
acc +1
|
||||
jmp +201
|
||||
acc +4
|
||||
jmp -165
|
||||
acc -17
|
||||
jmp -84
|
||||
acc -16
|
||||
acc +2
|
||||
acc +47
|
||||
jmp +54
|
||||
jmp -195
|
||||
acc +33
|
||||
acc -17
|
||||
jmp -18
|
||||
jmp +256
|
||||
acc +1
|
||||
jmp -244
|
||||
acc +28
|
||||
acc +35
|
||||
jmp +189
|
||||
nop +32
|
||||
acc +9
|
||||
jmp +24
|
||||
acc +21
|
||||
acc +14
|
||||
acc +17
|
||||
jmp -67
|
||||
acc +21
|
||||
jmp -297
|
||||
acc +36
|
||||
acc +14
|
||||
acc -13
|
||||
jmp +115
|
||||
acc -2
|
||||
acc -13
|
||||
jmp -182
|
||||
nop +119
|
||||
acc -4
|
||||
acc +44
|
||||
acc -14
|
||||
jmp +61
|
||||
acc +41
|
||||
jmp -13
|
||||
nop -116
|
||||
jmp -294
|
||||
jmp +7
|
||||
jmp +17
|
||||
acc -14
|
||||
acc +42
|
||||
acc -6
|
||||
acc +24
|
||||
jmp +151
|
||||
nop -374
|
||||
nop -375
|
||||
acc +4
|
||||
jmp -268
|
||||
nop -27
|
||||
acc +16
|
||||
acc +2
|
||||
jmp -206
|
||||
jmp -320
|
||||
nop -196
|
||||
jmp +168
|
||||
nop +36
|
||||
acc +34
|
||||
jmp -402
|
||||
acc +36
|
||||
acc +38
|
||||
acc -11
|
||||
nop +17
|
||||
jmp -182
|
||||
acc +15
|
||||
jmp -145
|
||||
acc +43
|
||||
jmp -79
|
||||
jmp -391
|
||||
jmp -155
|
||||
nop -94
|
||||
acc +0
|
||||
acc +9
|
||||
jmp -441
|
||||
acc +3
|
||||
acc +6
|
||||
acc +50
|
||||
nop -334
|
||||
jmp +163
|
||||
acc +18
|
||||
acc -11
|
||||
jmp +21
|
||||
acc +10
|
||||
acc +4
|
||||
nop +132
|
||||
jmp -348
|
||||
acc +18
|
||||
nop -1
|
||||
acc -4
|
||||
nop +148
|
||||
jmp +165
|
||||
jmp +146
|
||||
jmp -460
|
||||
jmp -14
|
||||
acc +26
|
||||
nop -388
|
||||
nop -353
|
||||
jmp +119
|
||||
acc +26
|
||||
acc -1
|
||||
acc +9
|
||||
jmp -285
|
||||
acc +37
|
||||
jmp -345
|
||||
jmp -178
|
||||
acc +7
|
||||
acc +13
|
||||
jmp -39
|
||||
acc +29
|
||||
nop -200
|
||||
acc +50
|
||||
acc +24
|
||||
jmp -160
|
||||
acc +18
|
||||
jmp +63
|
||||
acc -11
|
||||
acc +1
|
||||
acc -6
|
||||
acc +33
|
||||
jmp -90
|
||||
acc -3
|
||||
acc +11
|
||||
acc +45
|
||||
jmp -197
|
||||
jmp -169
|
||||
acc +7
|
||||
acc -4
|
||||
jmp -281
|
||||
acc +48
|
||||
nop +19
|
||||
nop -25
|
||||
nop +9
|
||||
jmp -274
|
||||
nop -126
|
||||
acc +22
|
||||
acc -4
|
||||
jmp -408
|
||||
acc +1
|
||||
acc +0
|
||||
jmp +98
|
||||
acc +25
|
||||
acc +12
|
||||
acc -19
|
||||
jmp -90
|
||||
acc +44
|
||||
acc +20
|
||||
acc +21
|
||||
jmp -192
|
||||
acc -12
|
||||
jmp -70
|
||||
nop +3
|
||||
acc +17
|
||||
jmp -349
|
||||
acc +20
|
||||
acc -7
|
||||
acc +6
|
||||
nop -43
|
||||
jmp +53
|
||||
acc +34
|
||||
acc +48
|
||||
acc -4
|
||||
acc +8
|
||||
jmp -126
|
||||
acc +23
|
||||
acc +25
|
||||
jmp -349
|
||||
acc -4
|
||||
jmp -272
|
||||
jmp -129
|
||||
nop -366
|
||||
jmp -292
|
||||
acc +29
|
||||
nop -269
|
||||
acc +50
|
||||
nop -254
|
||||
jmp -321
|
||||
jmp -23
|
||||
acc +11
|
||||
nop -425
|
||||
nop -150
|
||||
acc -9
|
||||
jmp -467
|
||||
acc +18
|
||||
acc +27
|
||||
jmp -338
|
||||
jmp +1
|
||||
acc +21
|
||||
acc +27
|
||||
acc -11
|
||||
jmp -160
|
||||
acc +27
|
||||
acc +15
|
||||
acc +0
|
||||
acc +41
|
||||
jmp -386
|
||||
acc -10
|
||||
acc +14
|
||||
jmp -217
|
||||
nop -484
|
||||
acc +47
|
||||
jmp -529
|
||||
acc -10
|
||||
acc +48
|
||||
acc +0
|
||||
jmp -430
|
||||
acc +45
|
||||
acc -8
|
||||
acc +3
|
||||
nop -103
|
||||
jmp -387
|
||||
acc -16
|
||||
acc +39
|
||||
jmp +1
|
||||
acc +17
|
||||
jmp -350
|
||||
jmp -328
|
||||
acc +30
|
||||
acc +28
|
||||
jmp -309
|
||||
nop -361
|
||||
acc +1
|
||||
nop -468
|
||||
jmp -212
|
||||
acc +29
|
||||
acc -4
|
||||
jmp -249
|
||||
acc +45
|
||||
acc +30
|
||||
acc +40
|
||||
acc -17
|
||||
jmp -579
|
||||
acc +25
|
||||
jmp -525
|
||||
nop -217
|
||||
acc +17
|
||||
acc +3
|
||||
jmp -142
|
||||
nop +18
|
||||
jmp -493
|
||||
jmp +1
|
||||
jmp -495
|
||||
jmp -360
|
||||
acc +7
|
||||
acc +30
|
||||
acc -3
|
||||
nop -449
|
||||
jmp -326
|
||||
acc -10
|
||||
acc -8
|
||||
jmp -371
|
||||
acc +22
|
||||
acc +48
|
||||
acc +6
|
||||
acc +18
|
||||
jmp -59
|
||||
acc +17
|
||||
acc +14
|
||||
jmp -250
|
||||
acc +19
|
||||
acc +25
|
||||
acc -14
|
||||
acc -17
|
||||
jmp -517
|
||||
acc +29
|
||||
acc -4
|
||||
acc +9
|
||||
acc +17
|
||||
jmp +1
|
|
@ -0,0 +1,26 @@
|
|||
pid:087499704 hgt:74in ecl:grn iyr:2012 eyr:2030 byr:1980
|
||||
hcl:#623a2f
|
||||
|
||||
eyr:2029 ecl:blu cid:129 byr:1989
|
||||
iyr:2014 pid:896056539 hcl:#a97842 hgt:165cm
|
||||
|
||||
hcl:#888785
|
||||
hgt:164cm byr:2001 iyr:2015 cid:88
|
||||
pid:545766238 ecl:hzl
|
||||
eyr:2022
|
||||
|
||||
iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719
|
||||
|
||||
eyr:1972 cid:100
|
||||
hcl:#18171d ecl:amb hgt:170 pid:186cm iyr:2018 byr:1926
|
||||
|
||||
iyr:2019
|
||||
hcl:#602927 eyr:1967 hgt:170cm
|
||||
ecl:grn pid:012533040 byr:1946
|
||||
|
||||
hcl:dab227 iyr:2012
|
||||
ecl:brn hgt:182cm pid:021572410 eyr:2020 byr:1992 cid:277
|
||||
|
||||
hgt:59cm ecl:zzz
|
||||
eyr:2038 hcl:74454a iyr:2023
|
||||
pid:3556412378 byr:2007
|
|
@ -9,8 +9,8 @@ fn is_valid(line: &Vec<String>) -> bool {
|
|||
let pos2: usize = line[1].parse().unwrap();
|
||||
let policy_char = line[2].chars().nth(0).unwrap();
|
||||
|
||||
let char1 = line[3].chars().nth(pos1-1);
|
||||
let char2 = line[3].chars().nth(pos2-1);
|
||||
let char1 = line[3].chars().nth(pos1 - 1);
|
||||
let char2 = line[3].chars().nth(pos2 - 1);
|
||||
|
||||
match (char1, char2) {
|
||||
(Some(c1), Some(c2)) => (c1 == policy_char) ^ (c2 == policy_char),
|
||||
|
|
|
@ -0,0 +1,123 @@
|
|||
use itertools::Itertools;
|
||||
use std::collections::HashMap;
|
||||
use std::error::Error;
|
||||
use std::fs::File;
|
||||
use std::io::{self, BufRead};
|
||||
use std::vec::Vec;
|
||||
|
||||
#[macro_use]
|
||||
extern crate lazy_static;
|
||||
extern crate regex;
|
||||
|
||||
use regex::Regex;
|
||||
|
||||
fn is_valid(passport: &HashMap<String, String>) -> u32 {
|
||||
lazy_static! {
|
||||
static ref HCL_RE: Regex = Regex::new(r"^#[a-f0-9]{6}$").unwrap();
|
||||
static ref PID_RE: Regex = Regex::new(r"^[0-9]{9}$").unwrap();
|
||||
static ref ECL_RE: Regex = Regex::new(r"^(amb|blu|brn|gry|grn|hzl|oth)$").unwrap();
|
||||
static ref HGT_RE: Regex = Regex::new(r"^([0-9]+)(in|cm)$").unwrap();
|
||||
}
|
||||
|
||||
if !passport.contains_key("byr")
|
||||
|| !passport.contains_key("iyr")
|
||||
|| !passport.contains_key("eyr")
|
||||
|| !passport.contains_key("hgt")
|
||||
|| !passport.contains_key("hcl")
|
||||
|| !passport.contains_key("ecl")
|
||||
|| !passport.contains_key("pid")
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
|
||||
if let Ok(year) = passport.get("byr").unwrap().parse::<u32>() {
|
||||
if year < 1920 || year > 2002 {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if let Ok(year) = passport.get("iyr").unwrap().parse::<u32>() {
|
||||
if year < 2010 || year > 2020 {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if let Ok(year) = passport.get("eyr").unwrap().parse::<u32>() {
|
||||
if year < 2020 || year > 2030 {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if !HCL_RE.is_match(passport.get("hcl").unwrap()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if let Some(cap) = HGT_RE.captures_iter(passport.get("hgt").unwrap()).nth(0) {
|
||||
if let Ok(hgt) = cap[1].parse::<u32>() {
|
||||
match &cap[2] {
|
||||
"in" => {
|
||||
if hgt < 59 || hgt > 76 {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
"cm" => {
|
||||
if hgt < 150 || hgt > 193 {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
_ => return 0,
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if !ECL_RE.is_match(passport.get("ecl").unwrap()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if !PID_RE.is_match(passport.get("pid").unwrap()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
let file = File::open("inputs/day4.txt")?;
|
||||
let lines = io::BufReader::new(file).lines().map(|l| l.unwrap());
|
||||
|
||||
let mut passports: Vec<HashMap<String, String>> = Vec::new();
|
||||
let mut passport = HashMap::<String, String>::new();
|
||||
for line in lines {
|
||||
if line == "" {
|
||||
passports.push(passport);
|
||||
passport = HashMap::new();
|
||||
continue;
|
||||
}
|
||||
|
||||
for tuple in line.split(" ") {
|
||||
let mut parts = tuple.split(":");
|
||||
let key = parts.nth(0).unwrap().to_string();
|
||||
let value = parts.nth(0).unwrap().to_string();
|
||||
passport.insert(key, value);
|
||||
}
|
||||
}
|
||||
passports.push(passport);
|
||||
|
||||
println!("Read {} passports.", passports.len());
|
||||
|
||||
let count = passports.iter().map(is_valid).fold(0, |acc, x| acc + x);
|
||||
|
||||
println!("Valid count {}", count);
|
||||
|
||||
Ok(())
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
use std::collections::HashSet;
|
||||
use std::error::Error;
|
||||
use std::fs::File;
|
||||
use std::io::{self, BufRead};
|
||||
use std::vec::Vec;
|
||||
|
||||
enum Instruction {
|
||||
Nop(i32),
|
||||
Acc(i32),
|
||||
Jmp(i32),
|
||||
}
|
||||
|
||||
fn line_to_instruction(line: String) -> Instruction {
|
||||
let mut parts = line.split(" ");
|
||||
let opcode = parts.nth(0).unwrap();
|
||||
let arg: i32 = parts.nth(0).unwrap().parse().unwrap();
|
||||
|
||||
match opcode {
|
||||
"nop" => Instruction::Nop(arg),
|
||||
"acc" => Instruction::Acc(arg),
|
||||
"jmp" => Instruction::Jmp(arg),
|
||||
_ => panic!("Unsupported Instruction: {}", opcode),
|
||||
}
|
||||
}
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
let file = File::open("inputs/day8.txt")?;
|
||||
let lines = io::BufReader::new(file).lines().map(|l| l.unwrap());
|
||||
|
||||
let programm: Vec<Instruction> = lines.map(line_to_instruction).collect();
|
||||
|
||||
let mut pc = 0usize;
|
||||
let mut visted: HashSet<usize> = HashSet::new();
|
||||
let mut acc = 0i32;
|
||||
|
||||
while !visted.contains(&pc) {
|
||||
visted.insert(pc);
|
||||
match programm.get(pc) {
|
||||
Some(Instruction::Nop(_)) => pc += 1,
|
||||
Some(Instruction::Acc(arg)) => {
|
||||
pc += 1;
|
||||
acc += arg
|
||||
}
|
||||
Some(Instruction::Jmp(arg)) => {
|
||||
pc = (pc as i32 + arg) as usize;
|
||||
}
|
||||
None => panic!("PC {} is beyond the programm", pc),
|
||||
}
|
||||
println!("PC: {}, Acc: {}", pc, acc);
|
||||
}
|
||||
|
||||
println!("Final PC: {}, Final Acc: {}", pc, acc);
|
||||
|
||||
Ok(())
|
||||
}
|
|
@ -0,0 +1,131 @@
|
|||
use std::collections::HashSet;
|
||||
use std::error::Error;
|
||||
use std::fs::File;
|
||||
use std::io::{self, BufRead};
|
||||
use std::vec::Vec;
|
||||
|
||||
enum Instruction {
|
||||
Nop(i32),
|
||||
Acc(i32),
|
||||
Jmp(i32),
|
||||
}
|
||||
|
||||
struct Node {
|
||||
inst: Instruction,
|
||||
jmp_srcs: Vec<usize>,
|
||||
nop_srcs: Vec<usize>,
|
||||
}
|
||||
|
||||
fn line_to_node(line: String) -> Node {
|
||||
let mut parts = line.split(" ");
|
||||
let opcode = parts.nth(0).unwrap();
|
||||
let arg: i32 = parts.nth(0).unwrap().parse().unwrap();
|
||||
|
||||
match opcode {
|
||||
"nop" => Node {
|
||||
inst: Instruction::Nop(arg),
|
||||
jmp_srcs: Vec::new(),
|
||||
nop_srcs: Vec::new(),
|
||||
},
|
||||
"acc" => Node {
|
||||
inst: Instruction::Acc(arg),
|
||||
jmp_srcs: Vec::new(),
|
||||
nop_srcs: Vec::new(),
|
||||
},
|
||||
"jmp" => Node {
|
||||
inst: Instruction::Jmp(arg),
|
||||
jmp_srcs: Vec::new(),
|
||||
nop_srcs: Vec::new(),
|
||||
},
|
||||
_ => panic!("Unsupported Instruction: {}", opcode),
|
||||
}
|
||||
}
|
||||
|
||||
fn update_source_locations(programm: &mut Vec<Node>) {
|
||||
for pc in 0..programm.len() {
|
||||
let node = programm.get(pc).unwrap();
|
||||
match node.inst {
|
||||
Instruction::Nop(arg) => {
|
||||
if let Some(target) = programm.get_mut((pc as i32 + arg) as usize) {
|
||||
target.nop_srcs.push(pc);
|
||||
}
|
||||
}
|
||||
Instruction::Jmp(arg) => {
|
||||
if let Some(target) = programm.get_mut((pc as i32 + arg) as usize) {
|
||||
target.jmp_srcs.push(pc);
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn backtrack_acc(
|
||||
programm: &Vec<Node>,
|
||||
mut visted: HashSet<usize>,
|
||||
pc: usize,
|
||||
mut acc: i32,
|
||||
changed: bool,
|
||||
) -> Option<i32> {
|
||||
if visted.contains(&pc) {
|
||||
return None;
|
||||
}
|
||||
|
||||
let node = programm.get(pc)?;
|
||||
visted.insert(pc);
|
||||
|
||||
if let Instruction::Acc(arg) = node.inst {
|
||||
acc += arg;
|
||||
}
|
||||
|
||||
if pc == 0 {
|
||||
return Some(acc);
|
||||
}
|
||||
|
||||
let prev_node = programm.get(pc - 1).unwrap();
|
||||
match prev_node.inst {
|
||||
Instruction::Jmp(_) => {
|
||||
if !changed {
|
||||
if let Some(res) = backtrack_acc(programm, visted.clone(), pc - 1, acc, true) {
|
||||
return Some(res);
|
||||
};
|
||||
}
|
||||
}
|
||||
_ => {
|
||||
if let Some(res) = backtrack_acc(programm, visted.clone(), pc - 1, acc, changed) {
|
||||
return Some(res);
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
for src in node.jmp_srcs.iter() {
|
||||
if let Some(res) = backtrack_acc(programm, visted.clone(), *src, acc, changed) {
|
||||
return Some(res);
|
||||
};
|
||||
}
|
||||
|
||||
if !changed {
|
||||
for src in node.nop_srcs.iter() {
|
||||
if let Some(res) = backtrack_acc(programm, visted.clone(), *src, acc, true) {
|
||||
return Some(res);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return None;
|
||||
}
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
let file = File::open("inputs/day8.txt")?;
|
||||
let lines = io::BufReader::new(file).lines().map(|l| l.unwrap());
|
||||
|
||||
let mut programm: Vec<Node> = lines.map(line_to_node).collect();
|
||||
update_source_locations(&mut programm);
|
||||
|
||||
println!(
|
||||
"{:?}",
|
||||
backtrack_acc(&programm, HashSet::new(), programm.len() - 1, 0, false)
|
||||
);
|
||||
|
||||
Ok(())
|
||||
}
|
Loading…
Reference in New Issue