added day04
This commit is contained in:
5
Cargo.lock
generated
5
Cargo.lock
generated
@@ -9,6 +9,7 @@ dependencies = [
|
||||
"day01",
|
||||
"day02",
|
||||
"day03",
|
||||
"day04",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -22,3 +23,7 @@ version = "0.1.0"
|
||||
[[package]]
|
||||
name = "day03"
|
||||
version = "0.1.0"
|
||||
|
||||
[[package]]
|
||||
name = "day04"
|
||||
version = "0.1.0"
|
||||
|
||||
@@ -10,3 +10,4 @@ opt-level = 2
|
||||
day01 = {path = "src/day01"}
|
||||
day02 = {path = "src/day02"}
|
||||
day03 = {path = "src/day03"}
|
||||
day04 = {path = "src/day04"}
|
||||
|
||||
7
src/day04/Cargo.lock
generated
Normal file
7
src/day04/Cargo.lock
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "day04"
|
||||
version = "0.1.0"
|
||||
6
src/day04/Cargo.toml
Normal file
6
src/day04/Cargo.toml
Normal file
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "day04"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
140
src/day04/input04.txt
Normal file
140
src/day04/input04.txt
Normal file
@@ -0,0 +1,140 @@
|
||||
XAXAMXMXXSAMSMSMMMXMAXSAMXSMMSSSMXSSMSMMMXXMSMXAMXAXASAMXMASAXMAMMXSAMXMXMMMSXMMMSAMXSAMXSXMSMSSXAXXMASAMAMSASASXSSSXSXSXMAXSAMXMSXXXXAXMXSS
|
||||
MSAXMASMAMXMAAAASAMXMAMXMAXAMXMASAAAMAMXXMMMMXMSMXMMMXMMAMXMMMMAXSAMXSMSASMAMAMAXMASXXXMASAAXAAMMMMMXAMXMAXMASXSXMASAMAMMMXMAMXAMXSASMMXSAMX
|
||||
AXAXMMXMASASMSSSMASAMASXMMSSMXSAMMSMSASMMMAAAXSAMAMASMMSSSXAASMMMXMAMAASAXMASXMASAMAXXXMASMMMMMXAASXMSAMSSSMAMAXXMXMXMAMASMSSSSMSASMSASAMAXS
|
||||
SMSMSSXSAXXXXMXAXAMAMAXAAXAXXXXAXMAAMXMAAASMSXSASAMXSAMAMXMMASASAMSSSMXMAMMMSMXXXMSMMMMMMSXXXAAMMASAAXMMAAXMAMMMSMMMXXXXXXAAAAAAMXSXSAMASMSM
|
||||
MAAAXMXMMMSXMSSMMXSAMSSSMMMSMAMMMSMMMSSSMMXAXMSXSAMSMXMMSSXMAMMXMXAAMXMAMSAAXMASXAAXAAAAMXMASMSSMAMMMMAMMSMSAXAAAAAMXSMMSMMMMMMMMXXAMSMXAXAX
|
||||
SSMSMMAXMASAMMAXAXMAMAAAXAXAMAASAMXSAMMAMMMMMMMAMAMAASMMAMXMAXXMXMMSMAMAAMMSXSAMMSMSSMSMSMSMXAAXMXMAMXAMXMAMMSMSXSMSASAAXAASAXAASAMXMMMMXSMS
|
||||
XAXXASXSMMMAMSXMMMSXSMSMSXSXSMXMASXMMSMMAAAAAAMAMXSMMAXMASMSMSMAXAXXXMXMSXAMMMASAMAXMAMXSAAMMMMMSASXXSASASXSMSMXMAMMASMMMSASASMSMAMAMXXAXMXM
|
||||
SMMSMMMAMAXMMMMMSAMAAXMASAMXMXMMAMXMSAMXSSSMSSSSSMMXMSMSASAAAAMSAMXMAXXSXMXMAMXMASAMXAXAMSMXASXXXAXAAXMMMMMAASAMXXSMMMASAMAMXMMMMAMAXSMSXSAS
|
||||
MXAXAASAMXMSAMAAMASAMAMAMAMAXAXMXSSMSASXMAMAAXAXXAAXSAAMASXMSSMXAXASAMXMXXMSSXMMMMMMXSMMMXSMSAMXSSMMMSXMAAMMMMXMXSXAASMMMSAMXAXMSSSMXXAXAXXM
|
||||
MMSSSMMXSAMSASMXSMXXXMMXSMMMSMSXSAMAXMAMMAMMMMMMSSMXMMSMAMAMXMASXMMMAXSAMAMAMASAXAAMMXMSAMXXMAAMAMAXXAASXXSSMAMMSMSSMMMXAMXMXXAAAAAXAMMMMMSM
|
||||
XAAAMMSASMMSXMAAXMAAXXMASAAAMXAXMXMXMMMSMMMAAAAXXMASXMXMASAMXMMMAXXMAMXAMMMASAMASXMSMAMMASXMSSXMASXMMMXMSAAAXMAMXAXXSSSMMSMMMMXMMSMMSSMAMAXM
|
||||
MMSSMAMASAAMMSMMAMMMMXMXMSMSSMSMMMMSSMAAAASMSSSMAMAAASAMXSXSXXXMSXSMSMXXMAMMSMXMAMAAXXSSMMAAXAXMAXMXXXMASMSMMMSSMSMAAMAMXAAAAMASAMAMAXXAMMSM
|
||||
XAAAMXSAMMMSAXAMMMSASASAAAMAXAAAAASAAMSSSMSAMAMXAMMSMMAXASXMMSSMMAMAXXMSSMSXMXMXAMXMMMMMAMMSMMSMXXMXXMMAMXMMSMAAMMMXMSSMMXSSMSASASMMMSSXSXAM
|
||||
MMSSMMMMXSAMMSMMSMXASAXMXMSSMMMSSSMSSMAAXXMMMAMSXSAAAXMMMSASAAAAMSMAMAXMAXSAMXSSXSAMAAAMAMSAMXAASMMSAAMSMXXAAMXMMSMXMAMAMXAAXMASXMXSXAXSMMMS
|
||||
MAMXAMSAAMASAXMASAMXMMMSXMXMAXAXMAXAMMSSMXXASAXXMMMSSMXAXXAMMSSMXMASXSSSMMSAMAXAASXSSSSSMSSXSSMSMAASXMMXAAMSMSAXSXASMMSAMXMSMMAXASAXMMSAXMSS
|
||||
MASXMMMMMSAMXMMXSXMXAXAMAMXSSMXSSSMMSAMAMMSAXXXAMAMXMASMSMSMMAAXXMXMAXAMXASMMSMMMMMXAAXXMAMMMXXMMMMMAXAMMMMMAMASXMMMXXSASXXAAMSMMMSAMXSXXSAX
|
||||
XAXAMXSXAMMSSMSMSMXSMMXSAMXAAAMXAAAAMAXSAASXMSSSMSMAXXMAAAAXMSSMMMAMXMAMSAMXAXASXAAMMMMXMAXASMMSAAMSMMXSMAAXSXSXXAMSXMMXXMSMSMXAXXXXXAMXSMMS
|
||||
MMSMMSAMXXSAMXSASAMXXAAXMSMMXMAMSMMMMXMXMMMAXAAXAAMMSAMSMXMMMAMAAMASAASMAAMMMSAMSMMAMXSMSXSSXMASMMMAMXMXMMMSAMXAMSAXAXSASXSAXASMMMMMMAMXXAXM
|
||||
XAAAXXASMMMXSXMAMSAXMMXSAXXMXSXMAXXAXSSXSASXMMXMMMMXAMMXMXSXMAMMXXMSXSAASAMXAMAMAXMMSAAXAASMSMXSXMXXSAAMSAXAAASAMMXSAMXXSAMAMAMXAAXAXAXMXAMX
|
||||
MXMSSSMMAAAMMAMXMMSXAAAMXMAXAAASXSMASMAMMASAAAASMMSAMMSSMAXASMSXSAMMXMAXMAMMXSAMAMSAMMMMMSMAXMAMXXXXSMSAMASXMMMAXXAMMSMXXXMXMXMXSSMMSMSAASXX
|
||||
MXMMMAAMSMSXSAMAMAMMMMSMASAMSSMMAXASMMSMMMMMMSMSAASMXAXAMSSXMMAAXAMMAXXSSXMSMSXSXXMASMXSXMMSMSMMMSAXMAXAAAMXMXMAMXMAMAMMAMXXMMSAMAAMAMXMMAAM
|
||||
AASASXMMAAXAXXSXXASMMAXXAMAMXAXMXMXMAAAXXAAXMAMXMMMXMASXSMMMSMMSSMMSSSMAMAMXAMAMXMSAMAAMAXAMAAMAAAMMMSSMMXXXMSMMXSXSMMAMSASMSAMXMSMSASAMXSMA
|
||||
SMSASMMSMSMMMMSMSMSAMXMMXMMXSXMXMSASMMSSSSSMSASMMAXAAXAMMAAAMXAXAMXAMAMXMXMMMMAMAXMAMMXMAMMMSMSMMXXAAMAMXSSXAAAXXMMXAXAXMASXMXSAMAMMAMMSAXXS
|
||||
MXMMMAXAMXAXXAMXAASMMXSSMMSAMMSXAMAXMXXAAAMASXMASMSASXAXSXMSMMMSXMMSSSMXSAXXMSXMXXMAMMXXXXMAXXXAMASMXSAMAMXMSXSMAXASMMXSMXMASXSASAMMSMMMASXM
|
||||
XAMASXMXXSSMMXASMMMXSAAAAAMAMAXMSMAMXMMMMMMAMMSXMXAAXMMMSAMAASXMXSXAAAAASMMSMSAMSXSASASMSAMASXSXMXMAXSMMAXXAMAXMMMMSXSAMXSSSMAXMMASAAASMAMAM
|
||||
SXSAMSMMXMMASXAXXXAAMMMMMMSMMAMMAMAMAASAMXMSSMMMMMMSMMSASAMMXSAMXAMMXMMMXXXXAMAMAASAMAAAXXMASAMASXMSMSASMSSMMAMAMMXSMMASAMXAMXMASAMMSMMMSMMM
|
||||
MXMMMAXMAXMAMMSMMMMMXSXSXMAAMXXSASASXMMSSXXAXMAAASAMAAAXXXMXASAMAMAMSSXMSXMMMMMMXMMXMMMSMXMXMASAMASAAMASAAXXMASAMMAMASXMMSSMMAAMMASAMXSXMASM
|
||||
XXASMMSXMXMMSAMASXXAASXMASMSMAAMAMXMXAXAXMMMSSXMXMASMMSXXAMMMSAMAXSAAAXMAMSAMAAMXXXXXAAMMSMXMAMASMMMSMMMMAMXSXMASMASMMMAMXMXSXSXXAMAXAMSSSMA
|
||||
MMXXAMMMMAXMMASAMXSMMSASAMAAMXMMSMMMMSMXMAAAAMASASAMXMAXSASXXMASMSMMMMMMSXMAMXSSSSSSSMXXAAAAMASXAMAAAAXMMSMMAASAMMAMXMSSMAMAXAMXMSMSMSMAMAMM
|
||||
XAMSSMAASMSSMAMXMAMAMSMMMXSXMXXAXASAAMXSSSMSMSASAXAXXMAMXAMMMXAMMXXAXSSXMMSXMAXAAAAAAAAMSMSMSAMXXXMMSAMXAXASXXMSSXMMXXAAAMMSMSSXXAAAAAMAXAMS
|
||||
XMXAAMXMAAAXXXAMSXSAMXMASAMAXAMXSAMMSMAXAXAMAXMMXMSMMMSSMAMASMSSMMXSAMXAXXAAMXSMMMMMMMSXXAXMAMXMMMMAMMMMMSAMAXMXMASXMMSSMXAASMAASMSMSMXXSMMA
|
||||
MSMSSMMAMMMMSMMMAAXAMXSMSASAMXSAMMMMAMMMMMMMMSMAAMASXAAXMASXSXXAASXMAMSSMMXSMAAXMSAMXXXAMXMASXASASMASXSAMMMMXXMASAMXMAXAMMMSAMXMXAAMAMMMAMMM
|
||||
AAAXMASXXMMAAAAMMSMASAMXMAMAMAAXMAAMMSAAMAXAAAMXMXAMMMSXMMSMMMSMMMAXSMMAXMAMMMMMAMXMMSMSMSAMXSMSASMMMXSASXSMMASXSAAAMXXAMAXXMAXXXSMSMXAMXSAX
|
||||
SMSMXMMMAMMSSSMMAAXAMXSASXMXAMMSSSSSXMMMSMSMXXXAMMSMSMMAXAMAAAMASMMMXASAMSASAMXAMAAXAAAMXMAAAMXMXMASAMSAMXMAXXAMSXMMSSSSMMSSXAXSXMXSASXSASMS
|
||||
AAAAASAMAMXXAAXSSMSXSAXAXXAXSAAAMAMAMXAMAAMAXSAXMAXAXASAMSSSMXSAMAMAMMMMXMASMMSSMSMSSMSMASMMSSXMAXXMAXMASXMAMMAMXMSAAMMAAXAXXMASXSAMMAAMXSXM
|
||||
MSMSMSASMSSSSMMAAXMASMMXMXXAMMMMSAMASMMSMSMAMMASAMMAMAMMMAAXMMMASXMASXASAMXMAASAMAMAXAAMMMAAMXMSSSMSSMSMMXMASXMMAAMMMSSMSMSSXSASAMAMXSXMASAS
|
||||
XXAMXMAMAAAAASAAAMMAMXAMSMSMSXMAXAXAXAXMXXMASAAMAMAXMAAMMMSMSXSAMAXMAXXMASMSMMXAMXMASMSMXSMMMAMAAAAXAAAXMASASAASMMMXSAMXMAMAAMASMSMMAXAMXSAM
|
||||
XMASAMXMMMMMMASXXXXAXMMMAAAMSAMSXMMSSMMSAMXSMMSSXMXXMXSMMMMASAMXSXMSMSXSAMASMSMSMSMMSAXMMASAAXMMSMMMMSMSAMMAXXMMAAAMMMXAMAMMMMAMMAMXSSMMAMXM
|
||||
SAMMMXMMAMXSMMXMMMXSSSSSMSMSSMMMAMAAAAAXMXMMAAAMMAMXSAXAAAMMMAMMMMMAAAAMXMASXSAMXAMSMMMMMASXSXMXXAAAMAMMMXSSSMSMSMMSAAMXSMMXXMXSSMXMXAAMMSMS
|
||||
SASMSMSSSSMXAXXAMSMAAAAAMXMAMXASAMXXSMMSMAASMMSMMMSXMASXSMSSMSMXAAXMMMSMXMASAMXMMAMAAXXAMMMMXAXMAMXXMAMAMMXAAAXAAAXSMSXXAXXMMSXAXAASXSMMXSAA
|
||||
SAMMAAXAMAASMMXSAAXMMMMMSAMASMMSXMMXXXMAXAMMXXMAXMSAMXMAXAAAAAXMSXSXSAAXSSMMMMAXAXXXSMSSSMAMSSMMAASMSXSASXMXMMMSMSMXMAMSAMXMASMMMSMMAAXMXMSM
|
||||
MMMMMSMXMMXAAMAMSMSXAXXXXASAXAXMASMAMSAMXMSASXSAMMXXMAMXMSMMMMMXXAMAMXSSMAMAAXXSSSSMAAXMAXMMAAAMMSAAXAXMSAMXSAAXAXXXMAMMXSMMMSASAMMMSMMSAMXX
|
||||
XAAAMXMASXSSXMAXMXSXSSMSSXMXMSASMXMAXXXXAASAMXMXXSAMSXSXMXXMAXMASAMXMAMAXAMXMSAAAAASXSXSAMMMSSMMXXMMMXMSMMSASMSSSMMMMXSXASMAMSAMMMAAAAASXXXA
|
||||
SMSXSAMASXMAMSMXMAMAMXAAAXMAXMAMXMSMSMSMSMMAMXMAMXAXAAAMSAMXSMMXSAMXMXSAMXSAAMMMMSMMSAAMMSAAMAMXSAMXSMMAAMMAMAAMAMXAXSXMAMMAMMAMMXMMMMMSMSMS
|
||||
AAAASAMASMMAAAXMMSMMMSMMSMSSSXMSXMASAAXAAXSXMAMAMSMMMXMAAMMSMAXASAMXMXSAMAMMXMASXMXXMMMMMSMMXAMXSAMASASXSMMMMSMSASXMSXSASMSMSSMMAAXSAMSMAAAM
|
||||
MMMMMXMMSASMXSXSAAAXAAAXXAXAMAMSASMSMSMSMMMASXSMXMAAXXSXMAXAMXMASXSAMMMAMSSXSAMXAMSMMMXXASMXSAMXSXSASMMAMXSXXMASASXMXMASXAAXXAAMSXMAMSAMMMSM
|
||||
MXSAMXXXSAMAAMAMSSSMXMXMMAMAMSMSAMXXXXAXMAMMSAMXAMSMSAMAXSSMSASAMXSAMSSXMXAXMASMAMMAMXMMASAAMAMXMAMMSMMSMAASXMAMSMAXSAMXMSMSMSXMASAMXAMXXSAX
|
||||
MASAMMXXMMMMMMAMAXXXMXMSMMSAAMMMSMXSMMSXSASXMMMSAXAXXXSAMMAXSASASASAMMAMSXMMSSMMAXSMMAXMAMMMXAMAMAMAMAMAMXSAMMSMXMSMSAXXAASMAMMMAMXXXMXMSMAM
|
||||
MASAAMAMXMAAAMXMXSMAAMAMAASMSXXXXMAXXAAMSASMXSASMSXXAMXMXMMMMAMAMASMMMAMAAXAXAAMMXAXSAXMASMSSMSASASMSASASXXMAAMXSAMASAMXSSSMAMAMSXSXSXASAMAM
|
||||
MASXSAMXASXXMXAXXMAAMSAXMMMMAASAMMXXMMXXMMMXXMAXMAMXSMMSAMAAMXMASMMAXXAMMMMSSMMMSXSAMXSXAMAAAMSXSASXSMSXSMMXMMSAMAMAMXMXXAXXAXSXMASAAXMMAMSS
|
||||
MASAMXXMASMSMSMSMMXMMSASMMXMSXMAXASMMSXASMAMXMSMMMSAMAASASXSSXMXMASXMSXSXMAMMMAMXAAXSAMMMMMMMMSXMMSASASMMXAXXMMASAMXAMMMMMMMSXXAMAMASMSSSMAM
|
||||
AASAMSMSASXAAAXAXSASXMAMAASMMASXMXSAASMMMSAAAXAAMAMAMSASMMMXXMXMSAMXAAMAAMMSMSMMMMMSMMXAAAAXMASXSAMXMAMAAASMSAMXMXSMASAXAXAXMASMMXSMAAXAMMAM
|
||||
MXMAMAMMASMMSMSMMSASXMAMSMMASAMMMASMMMASASXXXMSMMASMMAAXASXXAMAAMMSAMSMMSSXMAAAXSXMAAASXSSSSMASAMXSXMAMSAMMAMAMSMXXMASMSXMSSMAMXSXMMMMMMMSAS
|
||||
MSMMMASMMMMXAAMXAMMMXSXMAAMAMAMAMAXAASAMASAMSXMMSXMASMSMMMMMMSASMMSAMXAAAMAMSMSMMASMMMXAAAAXMXMXSXMXMSXMASMSMAMAAMXMAMMXXAMXMSMSXSAXMAAAMSAS
|
||||
AAAAXXXAMAMSMSMMMSMAMXXSSSMASAMSMMSSMSXSMMAMXAXXXXSAMAAAXAAXMAMMAASMMMMMSSMMAAAASAMXAMMMMMMMSXMAMAMXSAAXMAMXSXSMMAMAMXSASXSMSASXASXMSMSMMMAM
|
||||
SSSMSSSMMAMAXXXAXAMASMMMAXMASAXMAXAAMMAMASXMMMMXAXMXMXMSSSXSAXSSMMSAAAMXMXXSSMMXMXMXASMSXXSAMXMAMAMXXSSMXXMXMXSMSMSSMAMASAAXSMMMXMXMAAXMXMSM
|
||||
AXAXAMAMSMSAMXSSSMSAMAMMSMMXSMMMXMAMAMASXMAXXXAMSMSXSAMXAXASAMXXAAXMMMSAMSMMAMSXMMMSAAAXMAMASMSASXSSMMXMXASMMASMSAAXMAMAMMMMSASAMXMMMSMAXAMM
|
||||
MMMMMSMMAAAXSXMAAMMXSMMXMASAMMXXAMSSXSASXMAXMMXMMAMAAMSMMMMMXMMSMMXSAXXAMAAMAMSAMAAMXMSMSASXMAMAMAAMASAMSXMAMXSAXMMMSASMSSMAMAMAMSSMXMXMMMMM
|
||||
XASAMAMMMSMXMAMMMMAXMMSASMMASASAMAMMXSXMAMXXSASMMAMXMMXAASXMMSAXXMAMAXSAMSSMSMSAMMSXXMAASAMAMXMAMMMSSMAMMXSSMMMXMXXXMAMAAAAAMXMMMAAMASAXMMAX
|
||||
SMSASASAXMASXXMASMMSMASASXSXMASMMAASAMASMMMAMASMMMXXXXMMMXAAXMASAMASMMAXMMMAXAXXMXMASMMXMSSSMASXSXAXXMMSAMXXMASXMSMMMSMMMMMXSXAAMSXMAMAMMSMS
|
||||
MMSMMASAMAMSAMXMXAAAMAMXMXSSMAMXSSSMASXSAAXXMXMXMSSSMXSASXSMMXAMASASAMXMSXSMMXMAMXMAMAMXMAMAAASXSMMSXSSMMAMSMXAMXAAAAAXXMXMAMXSMMMXMAXSXMAAM
|
||||
SASXMXMMMSSSXSMXMMMMMMSMXAMAMSMXMXAMMMAXXMMAMMSAMAAAXMXAMAXXXMMXXMASMMAMXAXMAMMAMAMAXAMMMMMSMMSASAAXXXAAXSSMSMSASXSMSMSMSAMXSAMMASMSMSAASMMM
|
||||
MASMSSMASXAMAAMSXMAXAAAAMMSAMXMAMSAMXMMSSMMAXAMAMMSMMSMSMSMXSAMASMMMASXSMMMMAXSASXSSXMMXAAAAAXXAXAMSMSSMMXMAAXAASAMAXASXSASXMASMMSAAXMXMMAMX
|
||||
MAMXMASMMAAMMMASASXSMSXSXXSXSXSAXSASXAXXAASMMMMSMMMMASAXAXAASAMASAMXAMAAXXAXAMMAMXAMASMSSSSSSMMSMAMAAMAXMAMMMSMMMAMAMAMXSAMXMAMAXMMMMSSXSAMX
|
||||
MASXSAMXMSMSXXMSAMAAXMAMXMMAMXSMMSAMMMMMMMMMASMXMAMXAXMMMMMMMAMAMAMMSMSMMSMSMXMAMXMMXMAMAMAMAAAMXXSMSSXMSASMMXMMXXMMMMMMMMMXSASMMXAXAAMAMMXX
|
||||
MAMXMASXMXAXXMXMAMSMMMXMASMMMAMSAMXMXXAXXAXSAMXSMSXMSMXAXAXSSMMMMSMMAAXAAAMAASMMMAXMAMXMMMMSSSMMMXSXAXAASASAXASMMMSXMXMAAASAXASMAMXMMSMSMSMX
|
||||
SASXMASMMAMMMMMSXMAMXMAMXXAAMAXAMXMMMSMSXMXMMSAMXXAMXAXSXSXMAXXMAMASMSSMSXSMSMAASXSAXSXMAXXAXAAXMASMMSMMMXMMSXSASAMXMASMSMMAMSMMXSXAMMAMAAXS
|
||||
SASMMASASASAAAAAASMSSMMSSSSMMSSMMXSAAAXMAMXMAMASAXSMMMMXAMXSAMXMMXXMMAMXMMAMAMSMMAXMAMXSMSMMSMMMMASAMAXXSMSXAMMMMXSXSXSXXXMXMMASAAXMMMAMSXXA
|
||||
MXMASMXXSASXSMMSMXAAAAAAXMAMXMAXAAXMSMSMMMAMXXAMMXAAMXAMAAXMASAAASMSMXSASMMMSMMXMMMXMMASXMAAMASAMASMSASMAAMXMASXSAMXSXMAMSAMXMAMMSMXAMXXMMMM
|
||||
MASAMAXMMMMXMXXMMMMMSMMSSXSAMMAMXSMXMXXASXSMSMMMMASMMMXSMMSMAMXMMSAAMAMASXXAAXXAXXAXXMAMAXSASXMAMASXMASAMXMXXMAMSAMAMAMAMSASMMAMXAMSSSMXAAAX
|
||||
MAMAMXMMAXSAMMXMXAMAMAAAAAMASMMMAMXMASMAAAAASXSAXXAAXXAXMMAMMSXSAMXMMAMMMAMSSSSMSMSAMMMSXMXAXMMMMMSMSMSAXXMMMXMXMAMASAMXXSAMXSMSSMMXMAMSSMSS
|
||||
MASAMXASAMSAMAAMSMSASMMMXMMAMAAMAXASAXMAMXMMMASASMSMMMMSSSSSMXAMSSXXSXMAXXMAXMXXAXXAXAASAMXSXMAXMAMXSASAMXMASMSMSAMXSXXSAMAMAXSAMXMAXAMAXAAX
|
||||
SASASAAXAMSAMSSMAXMASXSSMMMXSSMXAMMMXSASXSXMMAMMMMAMXMXAAXMAMMMMASAMXMSSSXMXSMSMMMSAMMMXAMAMMSXSAMXAMMMMSMSAMSAXMMXMMXMMMXSMXSMXXAMXMSMMMMMM
|
||||
MASASMSSSMMAAAAXXSMAMXMASXAAXAMMSSMASMAMSAAXMSSXMSSSSXMMSMMAMAMMXSXSAXXMAXXXMAAAXASASXMMAMXSAXAMAMMMSASXAXMASMXMAMMSSXXAXAXMXMASXSASMXAXMAXS
|
||||
MMMAXXAAAXXMMMMMMXMMXXSSMMMMSAMAXAXXMMAMSSSMXMAXAAAAXXMAAMSSSMSSXMASASXSASXAMSMSMXSAMAMSSSMSXMMMAMXASXSMMSSMMXMASMAMAMSMMMXSAMMMAMXSASXMMSAA
|
||||
SXMXMMMMMMXSSSSXSMMMMMXXAXXASAMMSXMASXMMMAMASASMMMMMMXMASMXMAAAXAMXMAXAXAMMXMAAAMAMAMXMAAAASMXMASXSMMAMAAAAAAXAAMMSMAMAASMAMMSMMXMAXMASAAMXX
|
||||
MAMMMXSXXASXAAXAMSAAASASXMMASAMAMAMMSAMSMAMMSAMXMSAMXAMAXMAAMMMSXMAMSMMMSMXSMXMMMMMAMSMMSMMMXAMXMAMXMASMMSSMMASXXAXMASXSMMMSXMASMMXMXAXMXSSS
|
||||
SAMASAMXXMSMMMMMMAMMMMASXXXMSMMAMXMXSAMXMAMAMAMAXXAXSXMMXSAMXSXSMSSSXSXAMAMASXMMXMMMXSXXMAMXSMSMMMMSMMMAXXMXSMMMMSAMXSMAXXSAMMASAMXMMMXSMSAA
|
||||
MASXSASMSXMAAAXSMSXSXMXMMMMASASASXMMSXMASXMXSMMSSMSMSMASAMASXMAMMAMMAMMSSMXAAXAAAMXXAMXMSMSASMSASMAAMSSSMSMASAMXXXXMAMMAMXXMSMMSMMMXAASMXMMM
|
||||
SMMMSXMAASXSMSXMAMAASMAMAXMMSXMMXAAAXAMXASAMXAAMAMAAMMAMASAMAMMMMASMAMMMAMMXSSMMMSAASXMMAAMASASAMMMSSMAAAXMASAMMMMMMASMSSMMXSAASXAMSSMXMASXX
|
||||
AAAAMAMAMMXMXXAMAMSAASXSSMSXMXSMSSMMSMXXMASMSMMXAMMSMMSSMMASXMSASMMXASASAMMMMAXAXMAMMAMMMSMMMMMMMMAMXXSMSMMMSMXAAAAMMSAAAMSASMMMSAXMMXAXAMXM
|
||||
MSMSSMMAXXXMAMAMXMAXAXXMAXSAMXXAAXXMAMXMXMXXAXMSSXXXXAMAASXMAAMASAMSXSAMMASASMMSSSMSMXMAAMAMMXMXSSSMSMXMAXXAXASXSSSSMMMSMSMXSXXAMXMAMSSMMSAM
|
||||
XXXAAXXMSSMMASAMMSMSMMSMSMSAMAMSMMMSASAMXSMSMSMAMMMSMSSMMMSMMSMXMAMMASXMSAMMMAXAXXMAMAXMXMAMXSXAAXAAXAASAMXMMAMMMMXAXMAMMAXMMMSMMAMXMAMAASAS
|
||||
AMMSMMXMAAAMXXXXAMXAAXMAXAXAMXXAASASASMXAMXAXXMASAMXAMMXSXXXAAMXSAMMAMAXMAXSXSMAXXSSSMSMSMAMAXMMSSMMMMXXMASXMAMASAMXXMAMSAMMAXAAMMXXMASMMSAM
|
||||
MXAMXMAMAXMMSMSMSSSSMMMSMSSSSSSSSMASAMAMSXMXAMSAXASMXMAAMAMMSMSASASMSSXMMSMAAMXSAMXAAAAAAMAMAXXAMMXASMMSMMXMMASXSXMASMAXMAXSASXSMSXXMAXXAMAM
|
||||
XMASASXSSSXXAAXAXAMXAXMXAMXXAAMXMMAMAMXMXASXSMASMSMXMMMMMASAMSMMSAMMAMMXAXMMMMAXXAMXMMMMMSAXXASXMXMAMXAAAMMMSAXAMMXMMMSXSAMXAXXMASAXMMSMMSMM
|
||||
MSMSAMAXMAXSMMMMMAMMMSXMSMMMMMMAXMXSMMSSMAMAXAAMXAXAXSSSSXSASMMMMXMMSSSMAXXAMSMSMSSMSXXXASMXSXMAXSAMMMSSSMAXMSMAXSAMAAXXMASMMSAMXMAXSXAAMAAA
|
||||
XAAMXMXMMSMXASAMXMMMAMXMAAAXXASXXAMXAAAAMXMAMMSXSMMMSMAASASXMAXSAASAMAXMMMXXXAAAAXSAMASMASAASASXMMXSSMAAAMSMAXXXMMAMMXXASXMASMXMMAXSMMMSSSSS
|
||||
SMSMMSAXAAXMAXASXXAMASASMXMASMMXMXMSMMSSMXSXSMXASAMSAMXMMMMAMAAMXMMAMMMSSXMMSMSMXSMSMAMMMMMMMAMSAAAXMMMSMMMMXMASMSSMAMMMMMMMMXXMAMMAAAXXAMAA
|
||||
SSMAXMMMSSSXMSAMXSXXAMAXAAXXMAAMSAMXAXAAXXMAXMMMMAXSXSXXXXMXMMXMAXMMMMAXXAAAXXXAXSAAMASASMMSMSMXMMXMAAXAAAXSSMAAAAAMXMAMSASXMMSSMMSSSMSMMMSM
|
||||
SAMSMXAAMXAAMMMMAXXASMSMSMMMSMMMMASXMMMMAAMSMSAXXAMMXMXMMMXAXXASXSMSAMMSXSMSXMMXMMAMSXSASXAXMXMAMAAMMMSSMMXAAMMSMSMMXXXMAXSAAAAAAMAMAMSAXAAM
|
||||
SXMXMXMSSSMXMAXMXMMMAAAAAAAAAAMAMSMXSAXXMMMXASASMSAXAXAMAASMMSASAAAXXMXAAXMXASMXMXSMMXMXXMMSSMSMMMSXSAMXSSMSXMAXXAXXMAMXMXMMMMSXMMAXAMMSMXSA
|
||||
SXMASMXMAAXMMMSMAMXXMMMSXXMXSXMMXMAAMSMXXAAMXMAMMXMSMSMXSMSXAMAMMMMMSMMMSMASAMAASMMAXXSMMAMAMXAAMSMMAAMAAMAMXMXSXMXAMMMMXMXMXXXXXSXSASMXMAAX
|
||||
SASAXMXMSMMXAAAXXAMMXMXMMSSXXMXSAMMMSMXXSMMSAMXMAMAAMAXXMAXMXMSMSXAXAAXAAMXMXMSMSASXMXAAXMXXMMMSMAAXSAMXSMXMAMAMASXSMASAAAASMSMSAAASAMXASAMX
|
||||
XMMMSMXMXXASMSSSMSSMAXAAAAAAMAAXAMXMAMXXXAAXAMXSAMSMSXSMMAMXXXXAXSSXSSMMSMSMSMMASXMASXSXMXSAAAAAXXMMMAAAXXMSXMSSMMAASASXMSXXAAAMAMMMMMSASXMM
|
||||
XSAMAMMMAMAMXXXAMAAXSSSMMSMSMMMSSMMMSSMSSMMSSMAMXXAAXXMXAASMMSMMMAMXXMXMAAAXAAMAMASASXXAAAMMSMSSSSMXSSMXSMXMXXAAXXSMMMSXMMAMSMSMAMSXMASAMXMS
|
||||
ASASXMAMASAXMMMAMSSMMAXMAXMMXSXXAAXAAAXMASAAAMMSMSMSMXSASXSAAAXMXXSMSAASMSMSSSMXSXMASASMMMMAAMXMMAXAAAXAXAAMXMSSMMMAXAXMAXAAXAMXSMMAMAXMMXXS
|
||||
MXAMXSSSXXAXXAAXAAMAMXMSAMASASXSSMMSMSMXMMMSAMXMAAAAASXAXASMSMXSAMXAMSMSAMXAMXMASASXMMMMXSMXMSSXSMMXSMMMSSMSAAXXAXSAMXSXSSSSMXMAMXSXMXSASMAX
|
||||
MMSMMMAMAMSMSAMSMSXMSMXMASMMASXXAMAMXMMMXXXAMXSMSMSMSAMMMAMMMMXXAXMMMAXMASMMMASXMMXAAXASAXMSSMXAAXSMMXSAAAASMSMSXXMASAMMMAMXAAMASMSXMXSAAAAM
|
||||
MXAAASAMAMAAXAMSXXAMMASXXMXMAMXXAMAMASASAXMASXSAMAAXXMAXSXSMAMASMMMXSSXMAMXXXMXXMASMMSASMMMXAAMSMMMAXAMMSSMSAAXAMSSMMASMMSMSSMSAXXMASAMSMSXA
|
||||
ASXMMXXMXMMXMMMXASAMXAMAMMAMAXXSMMMSAMAXMMSSMMMAMSMSSXSASAAMMSAMXAAMMMMMSXXMXSSSSMASAMMMAASXMMMXXMSMMSMMMAXMMMMSSMASMMMAAMAAMAAXXXMXMXMXXMXS
|
||||
XSASXMSMSXSASASMMMMXMASXASMSMSAAAAAMXMMMMAMAASXSMXXAXAXAMSMMMAMXSMSXSSXMMAXSAMAMASAXXSASXMSASXSAMMAMMMAMXXXXAXAXAMAMXMAMXMXMMXMXMSAMXSMMAMAM
|
||||
SMMMAAAAAAMASAMMAMXAMMMXMXAAAMXMMXXMAAMXMAXSMMXMASMSMMMAMMXMSAMASAAAMAAXXMXAAMMSAMXSSXMMAMSXMAMAXXASASAMXSSSSMMSMMMSSXMXAAXXMAMAXMAMSMMMAMAS
|
||||
MASXMMMMMSMMMAMSSSSSSMMSMMSMSSMSSMASXMMMSMMASMMSMMMMAXXXXXAAMAMASXMASMXMSXSSSMXMXMAXXAMSXMXXMXMAMMMMMSAMASAMXAAAMAMAMAMAMXMMSASXMSXMAAXSSSSS
|
||||
SAMMMSXSAXAAMSMMMAMXAAAAMMMAAMMAMXAXAXMMAMSAMXAAMAMMMMMMSMMXSAMXSXMXSXMXAAMAMXXAAMMSSXMAXMXMSXMAMAAAXMAMXSMSSSXXMAMMSMMASAAMSASAMAMSMSMAMSAX
|
||||
MASAASMMASMMXMAMXXMSXMSMSAMMMSMASMSSSMXMAMMMMMMMSASAXAAAXAAMSXMAMAMAMXAMMSMAMMSSXSXAAASXMSAAAXSASXSMSSSMXXXXAXASXSSXAASASXSMMXXAMAMAAXMASMMM
|
||||
MMMMMXAMMMMMXXSMMMMXXMAXMXSMMMXMSXAAAMMXMAMASAMXSASASXMSSMMXMAMAMAMAMMMSAMMAMMXAMAMMSMAAASMSMXMASAAAAAAAAMMMAMXMAMMMSMMASAMXXSMMSXSASXXXXAAX
|
||||
SAAMASMMMASXSXXASASMSMSSMAMAAXASMMMSMMSAMASASASXMAMXMAAAXAXXXSSMSMSASXAMASMSSXMAMMAMXXMMMMXXMASAMMMMMSMMMASAAMMMMMXAMXMAXAXMAXAAAXXAXMSMSSMS
|
||||
XMXXAAAAMXMAXAMASASAMXMAMMSSMSMSAAMAMASASAMXSMMMMMMXMMMMSMMMMMAAAASXXMAXXMAXMASAMXMMMMXAMXAASAMXMMXAAMMSSXMXSMXASMMXMAMMSMMAMSMMSSMXMAAAXAAX
|
||||
XSSMSSXMMAMMMSMAMAMMSXSAMMAMMMXSXMXASASAMXSXXMAMXAXAMXMAAMXAXSMMMXMMSMSSMMMMXMMMXSAMXAMXMXSASXMAMXMMMSAMXAMXMXSMSAMSSSMAAAAMMAAAMXMAMXMXMMMX
|
||||
SAAAXMASXMASAXMXMMAMMASMMMASXMAMAMSXMAMXMMMMXMASMMSASAMSXSSSXSMMXSAASAAXMAMMXSAXASMXMSMAMMMASASMXSSMMMAMXAMXMASAXAMAAAMXXXMSSSSMMASASASXMXMA
|
||||
AXMMMMMMASMMAXAMXAAAMXMSAMMSAMXSAMSXMXSSMSAAXSASAAMMMMMMAMMMAXAXAXXMMMMSXMMSAMXMXMSAAAXAMAMXMAMXASXSASAMSMMXMASMSMMMSMSSMAMAAMAAMAMAMASXMAMS
|
||||
MSMASAXMAMXMMMSSMSXXMXAMXMSSMMMMXSMASAMAASMXMMASMMMSAMASASXSMSSMASXMMAAAASXMASXXAXSXSASXSXSXMSMMMMAAMSAMAXXAMXMXAXXMAXAAMSMMSSSMMSMMMSMMSASA
|
||||
XAMASMSMASAAAAAMAMMSSMMMSMMMAMAAXXMAMXSMMMAMSMMMXMASASASMSAAXAAMAMXASMMXMMAMMXAMSXMAMMAMXMSXMAMAAMXMXSXMSMMASAXSSSSSSMSSMAAXXAXXAMASXAAASXSM
|
||||
AMMXSASMAMMXMMSSXSAAAAXAAAASASMSMMMMSMMXMMXMAAMAMMASAMMSAMXMMSSMASMMMMSMMSSMXMXMMAMXMAMAAAXAXAXSSSXMAXSMAASMMMMAAAAAXXAAXSXMMAMMMSAMXMMMSASX
|
||||
MXSAMXMAMSSXXAXMAMMSSMMMSXMSASAAMAASAMXASAXSXXMAMXAMXMAMAMAXAAMXXSXMAAMAAAAXXMAMXMXSXMXSMSMMSMMAAXXAMXMSMAMMASMMMMMMMSSMMMSAMXMSAMXXXAAMMAMA
|
||||
SAMXSMMSMAXAMXSMSMMAMAMAMXMMMMXMSSXSASXAXMMMSXSASMMSAMMSMMMASMASMSAXMSSMMSSMMMAXASAMAXMXMXAXMXAMMMMSAMXAXAMMAMXAXMXAXAAMMSAMXSXXAMMSMXXXMXMS
|
||||
MASAXMAAMXSXSAXAMAXMSAMXMASAXAXMAXASAMMSMAMAAXMMMMAMXXXAAASAMXAXASXMSAMXMAXAASASASASAMSAMXSMXMASXXAMASXMMSAMXSXMXSSMXSXMXMASMMMSMMAAMMSSMASA
|
||||
MXMMXMSSSXAXMMXXSXMASASMMAMXMMSMASMMMMAASAMMSSSMSMSXMMSXSMSAXXAMXMSXMASASAMXMSASASAMAXSASAMAAXMXMXMSMMAAAAASAMXSAMMSAMAMXSAMXAAAAMSXSAAAAXXM
|
||||
SSMSAAAAAXMXAXMMAMXMSMMMSSMMXMAMXMAAMMSMSXSXAAAAAXMAMASXMASASASMSMSMSAMAXASMASAMAMMMMMSAMASXXXMAMAXAXSMMMSXMMSAMASAMXSASAMASMMSXSMAMMXSXMMSX
|
||||
XAASMMMMMSXSAAXXAXSMSMSAAASAMXSSMXSMMAMXMXSMMSMMMXSAMASASAMAMAAASASAMMSXSAMMAMAMXMAAXXXASAMASXSASXSMXMASXMASAMXSAMMSMSXMASMMAAMXMMAXXXXMSMXM
|
||||
MMMMSXAXASASMSXSXMMASASMSSMXMMAMAMAAMASASAXAMAAXAXXAMXSAMAMXMMMXMAMXMXAMMXMMSSMMSMSMSMSAMAXXSMSAMAAXXMAMASASASAMXSASAMMSMMMMMMSAXSMMSAMAMMAA
|
||||
MXMASXSMMSAXAAAMMSMAMXMAMAMAAMAXSASXMAMXMASMSSSMMSMSMMMMMXMSXMASMXMAAMSSSMXAAAAAAXAASASMMSMAMAMAMSMMSMSSMSAXAMXMMMMSSMAAAXAXXMMMMMAAMMMAMXSS
|
||||
XAMASMXAAMMMSMXMASMSSSMMMAXSASXSMMMMMMSSMMMAAAXXMAMXASAXMASAMMAMAAXASAMAXAMMSSMSSMMAMAMMAXMXMSMMMXAXASXAAMXMMMSMMAASAMSSSMXMASAAAMMMSXSAMXMM
|
||||
MSMAXASXMSAMXMMMMSAMXMASXMXMAXXAAXXAMAAMAAXMAMXMASXSAMMSMMAMAMASMSSMMXXAMSXXAMMXXAMXMSAMSSSMMXSMAMSMMASMMMASAAAMSSXSAMXAAXXSASXSMXAXMAMAXSAM
|
||||
MXAXSAXXMAMMASASXMAMSSSMSXXMAMMMMMXXMMSSSMSXXAMXAMAMAMAAXMAXMMAXXXAAASMMMXMMMSMAMXSXXMASAAAMXAMMAMAAXMXMASAXMSMXAMMSAMMXMAXAMXMMASXSMXMAMMAS
|
||||
ASAMMMMXSAMSASASXXAMXXAAXXXMASMASMSMSMMMMASMMSSMSSXSXMSSSSMSAMSSSSSMMAAAXXAAXAMMMAMXXSMMAXMMMSSSXMXSXXAMMSAXMXXMAMASAMMMMSSMMSXSMSAMMXMMXSAM
|
||||
MMMSXMMXAAXMXMXMAXSSMMMMSSXSAXXXMAAAAMAMMAMAAAAXAMMAMXAAAAASAAAAAXXAXSSMSMSMSXSXMSSMASMMSMXXAMAXMSMMMSMSXMMMAAMSSMASAMXSAAAAAAMXAMXMASAAAMAM
|
||||
XAASAMSSMSMSASMMSMMAMXAAAAMXMASXMMMSMSASMMSMMSSMMSMSASMMMMMXXMMMMMSMMMAXXMAMAAXAAAAXAMXAAAXMMMAMMAAAAXAMMAMMMMMAAMXMASXMMSSMMSAMSMAXXAXMSSSX
|
||||
SMMMAMAXAXASAMXAXXSAMSMMMSMASAXMAXXXASXSAMMMAAMAXAAAMXXAXAMSMMXSSMSXAXMMSXMSXXXMMSMMXSMSSSXXMASMSASMSSXMMAXMAXMXSMSSMMAXXAMXXMXAMMSSSXMMAMAM
|
||||
MSSXAMMMXMXMSMMAMMMAMXMASAXXMMXXSMMXXMMSXMAMMSSMMMSMSSSMMMMAAMASAASMSSSXMAXSXSSXAXXXAXAAMXMSSSXMXAXMAMMMSSSSMXSAMXAAASAMMASXXMMSXAAAAMAMSSMA
|
||||
SAMXSMXSMSXAMXSAXAMMMASXMAXMMMSAMAMXASAMASXMXXMASAXXXAAXSMSSSMXSMMMXMAMASXMSAXXMMSAMAXMMMAMASAMXMMMMAXAAAMAAMAMMSSSSMMMSMSMMSMAMSMMSMASMAAXS
|
||||
MMSMXMXAAMMXMASMSSSMXAMAMXMXAAXMSAMMMMASAMMSMMMMMSSMMMMMAAXMAMXXXAMXMXSXMSAMMMXMAXMASXMASASMXMSMXSAMMSMXMSSXMASAXAAXAXMAMAAXXMAXAXAAXXAMSSMA
|
||||
XXAMMSMMSMSMMXMMAAAXMASXMMAMMSSXMMSXAMXMAMMAMXAXXAMMAASXMSMSMMSMSXSASAMXAAMAMSSMASXSMASASXSXMXAAXMAXMAMAMXXXSASMMMMMMMSSSSSMAXMSAMSMSAAXAMXA
|
||||
MSMSAAMXMAAAMASMMXAMXXMASAMAXAAAMASXSMAMAMSASXMMSMMSMMMAXXAXMASXMASASMSMMMSMXAAMASMMSMMASAMAAMMAMSMMSASXAAMMMASXXMASXAAXAAMMASMMMMXAXMSAMXMM
|
||||
MAAMMXSAMSSXSASXSXSSXAMASXMSMSSSMASAXXSMAMSMMMSAAXAASMSSMMSXMASAMAMAMAXAAAAMMMSMAXXAXXMAMASAMAXXMAXAMAXMMXSAMSMXMXASMMSXMAXSAMXASMSSMXMAMAAM
|
||||
MMXMXSSXMAMXMASMSAAXXMMASXMAAMAAMMMMMAXMSXMASAMXSMMSSXAXSXAXMXMAMXXXSSMSMSMSAMXMSXMMSMMXSAMMSSXMSMSSMSMXXAAASMMXMXAXXXXXMXXMASMMSAAAAXSXSSSM
|
||||
MSASXAMXMASXSXSAMMMMSXMASASMSMSMMSAMMSMAMMMAMASMXMMMMMMMMMMMMSSXMMMXMAMXMAXMASMAXXASAMAMMMMMAMXAAAAMAMXSMSSMMXXAXMMSMXMMSAXSAMAMMMMMSMMAAAXX
|
||||
ASASMXMASMMASAMAMXXASAMASMMAAAAAMMAMAAMXMAMXSAMAAXMAAAAAAAXAAASAAAXASAMAMAXXAAMAMSSXMAXSAAMMASMSMMMMXMAXMXAAXSSMSAASMSXAAAXMASMMAAAAAAMSMMMA
|
||||
XMXMASMXSXMSMXSSMAMXSXMXSXMSMSMSXSSMSXSASXSAMXXSASXSSSSSSSSMSSSSMMSASMSXSMXMASMAMSASXAXSMSSSSMMAXSMXSMXSMSSMMAXASMXMASMXMSMSAMMSXSMSSSMXXXSX
|
||||
2
src/day04/src/lib.rs
Normal file
2
src/day04/src/lib.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
pub mod part04a;
|
||||
pub mod part04b;
|
||||
52
src/day04/src/part04a.rs
Normal file
52
src/day04/src/part04a.rs
Normal file
@@ -0,0 +1,52 @@
|
||||
use std::fs::File;
|
||||
use std::io::Read;
|
||||
|
||||
pub fn day04a() -> u64 {
|
||||
// read file (that for sure exists) into two lists
|
||||
let mut file: File = File::open("src/day04/input04.txt").unwrap();
|
||||
let mut file_content: String = String::new();
|
||||
file.read_to_string(&mut file_content).expect("Can't read file");
|
||||
|
||||
// create n*n matrix from input
|
||||
let mut matrix: [[char; 140]; 140] = [[' '; 140]; 140];
|
||||
file_content.split("\n").enumerate().for_each(|(line_nr, line)| {
|
||||
line.chars().enumerate().for_each(|(col_nr, ch)| {
|
||||
matrix[line_nr][col_nr] = ch;
|
||||
});
|
||||
});
|
||||
|
||||
// examine every element in matrix
|
||||
let mut count: u64 = 0;
|
||||
for row in 0..140isize {
|
||||
for col in 0..140isize {
|
||||
// skip if it's not X
|
||||
if !matrix[row as usize][col as usize].eq(&'X') { continue }
|
||||
// if enough space search in X+
|
||||
if col + 3 < 140 { count += search_xmas(&matrix, row, col, 0,1) }
|
||||
// if enough space search in X-
|
||||
if col > 2 { count += search_xmas(&matrix, row, col, 0, -1) }
|
||||
// if enough space search in Y+
|
||||
if row + 3 < 140 { count += search_xmas(&matrix, row, col, 1, 0) }
|
||||
// if enough space search in Y-
|
||||
if row > 2 { count += search_xmas(&matrix, row, col, -1, 0) }
|
||||
// if enough space search in X+Y+
|
||||
if col + 3 < 140 && row + 3 < 140 { count += search_xmas(&matrix, row, col, 1, 1) }
|
||||
// if enough space search in X+Y-
|
||||
if col + 3 < 140 && row > 2 { count += search_xmas(&matrix, row, col, -1, 1) }
|
||||
// if enough space search in X-Y+
|
||||
if col > 2 && row + 3 < 140 { count += search_xmas(&matrix, row, col, 1, -1) }
|
||||
// if enough space search in X-Y-
|
||||
if col > 2 && row > 2 { count += search_xmas(&matrix, row, col, -1, -1) }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
count
|
||||
}
|
||||
|
||||
fn search_xmas(matrix: &[[char; 140]; 140], row: isize, col: isize, x: isize, y: isize) -> u64 {
|
||||
if !matrix[(row+ x) as usize][(col +y) as usize].eq(&'M') { return 0 }
|
||||
if !matrix[(row+2*x) as usize][(col+2*y) as usize].eq(&'A') { return 0 }
|
||||
if !matrix[(row+3*x) as usize][(col+3*y) as usize].eq(&'S') { return 0 }
|
||||
1
|
||||
}
|
||||
60
src/day04/src/part04b.rs
Normal file
60
src/day04/src/part04b.rs
Normal file
@@ -0,0 +1,60 @@
|
||||
use std::fs::File;
|
||||
use std::io::Read;
|
||||
|
||||
pub fn day04b() -> u64 {
|
||||
// read file (that for sure exists) into two lists
|
||||
let mut file: File = File::open("src/day04/input04.txt").unwrap();
|
||||
let mut file_content: String = String::new();
|
||||
file.read_to_string(&mut file_content).expect("Can't read file");
|
||||
|
||||
// create n*n matrix from input
|
||||
let mut matrix: [[char; 140]; 140] = [[' '; 140]; 140];
|
||||
file_content.split("\n").enumerate().for_each(|(line_nr, line)| {
|
||||
line.chars().enumerate().for_each(|(col_nr, ch)| {
|
||||
matrix[line_nr][col_nr] = ch;
|
||||
});
|
||||
});
|
||||
|
||||
// examine every element in matrix
|
||||
let mut count: u64 = 0;
|
||||
for row in 1..139 {
|
||||
for col in 1..139 {
|
||||
// skip if it's not A
|
||||
if !matrix[row][col].eq(&'A') { continue }
|
||||
// if enough space search in X+
|
||||
count += is_x_mas(&matrix, row, col);
|
||||
}
|
||||
}
|
||||
|
||||
count
|
||||
}
|
||||
|
||||
fn is_x_mas(matrix: &[[char; 140]; 140], row: usize, col: usize) -> u64 {
|
||||
if !validate_tl_br(matrix, row, col) { return 0 }
|
||||
if !validate_tr_bl(matrix, row, col) { return 0 }
|
||||
1
|
||||
}
|
||||
|
||||
fn validate_tl_br(matrix: &[[char; 140]; 140], row: usize, col: usize) -> bool {
|
||||
match matrix[row-1][col-1] {
|
||||
ch if ch.eq(&'M') => {
|
||||
matrix[row+1][col+1].eq(&'S')
|
||||
}
|
||||
ch if ch.eq(&'S') => {
|
||||
matrix[row+1][col+1].eq(&'M')
|
||||
}
|
||||
_ => false
|
||||
}
|
||||
}
|
||||
|
||||
fn validate_tr_bl(matrix: &[[char; 140]; 140], row: usize, col: usize) -> bool {
|
||||
match matrix[row-1][col+1] {
|
||||
ch if ch.eq(&'M') => {
|
||||
matrix[row+1][col-1].eq(&'S')
|
||||
}
|
||||
ch if ch.eq(&'S') => {
|
||||
matrix[row+1][col-1].eq(&'M')
|
||||
}
|
||||
_ => false
|
||||
}
|
||||
}
|
||||
39
src/day04/story04a.txt
Normal file
39
src/day04/story04a.txt
Normal file
@@ -0,0 +1,39 @@
|
||||
"Looks like the Chief's not here. Next!" One of The Historians pulls out a device and pushes the only button on it. After a brief flash, you recognize the interior of the Ceres monitoring station!
|
||||
|
||||
As the search for the Chief continues, a small Elf who lives on the station tugs on your shirt; she'd like to know if you could help her with her word search (your puzzle input). She only has to find one word: XMAS.
|
||||
|
||||
This word search allows words to be horizontal, vertical, diagonal, written backwards, or even overlapping other words. It's a little unusual, though, as you don't merely need to find one instance of XMAS - you need to find all of them. Here are a few ways XMAS might appear, where irrelevant characters have been replaced with .:
|
||||
|
||||
..X...
|
||||
.SAMX.
|
||||
.A..A.
|
||||
XMAS.S
|
||||
.X....
|
||||
|
||||
The actual word search will be full of letters instead. For example:
|
||||
|
||||
MMMSXXMASM
|
||||
MSAMXMSMSA
|
||||
AMXSXMAAMM
|
||||
MSAMASMSMX
|
||||
XMASAMXAMM
|
||||
XXAMMXXAMA
|
||||
SMSMSASXSS
|
||||
SAXAMASAAA
|
||||
MAMMMXMMMM
|
||||
MXMXAXMASX
|
||||
|
||||
In this word search, XMAS occurs a total of 18 times; here's the same word search again, but where letters not involved in any XMAS have been replaced with .:
|
||||
|
||||
....XXMAS.
|
||||
.SAMXMS...
|
||||
...S..A...
|
||||
..A.A.MS.X
|
||||
XMASAMX.MM
|
||||
X.....XA.A
|
||||
S.S.S.S.SS
|
||||
.A.A.A.A.A
|
||||
..M.M.M.MM
|
||||
.X.X.XMASX
|
||||
|
||||
Take a look at the little Elf's word search. How many times does XMAS appear?
|
||||
26
src/day04/story04b.txt
Normal file
26
src/day04/story04b.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
The Elf looks quizzically at you. Did you misunderstand the assignment?
|
||||
|
||||
Looking for the instructions, you flip over the word search to find that this isn't actually an XMAS puzzle; it's an X-MAS puzzle in which you're supposed to find two MAS in the shape of an X. One way to achieve that is like this:
|
||||
|
||||
M.S
|
||||
.A.
|
||||
M.S
|
||||
|
||||
Irrelevant characters have again been replaced with . in the above diagram. Within the X, each MAS can be written forwards or backwards.
|
||||
|
||||
Here's the same example from before, but this time all of the X-MASes have been kept instead:
|
||||
|
||||
.M.S......
|
||||
..A..MSMS.
|
||||
.M.S.MAA..
|
||||
..A.ASMSM.
|
||||
.M.S.M....
|
||||
..........
|
||||
S.S.S.S.S.
|
||||
.A.A.A.A..
|
||||
M.M.M.M.M.
|
||||
..........
|
||||
|
||||
In this example, an X-MAS appears 9 times.
|
||||
|
||||
Flip the word search from the instructions back over to the word search side and try again. How many times does an X-MAS appear?
|
||||
@@ -5,6 +5,8 @@ use day02::part02a::day02a;
|
||||
use day02::part02b::day02b;
|
||||
use day03::part03a::day03a;
|
||||
use day03::part03b::day03b;
|
||||
use day04::part04a::day04a;
|
||||
use day04::part04b::day04b;
|
||||
|
||||
fn main() {
|
||||
let exercises: Vec<(&str, fn () -> u64)> = vec![
|
||||
@@ -14,6 +16,8 @@ fn main() {
|
||||
("day02:B", day02b),
|
||||
("day03:A", day03a),
|
||||
("day03:B", day03b),
|
||||
("day04:A", day04a),
|
||||
("day04:B", day04b),
|
||||
];
|
||||
|
||||
let start: Instant = Instant::now();
|
||||
|
||||
Reference in New Issue
Block a user