1
0
Fork 0

Added Day 9 Part 1

This commit is contained in:
Ishan Jain 2021-12-09 10:38:37 +05:30
parent fdb93b534f
commit 2dc1b8af66
3 changed files with 136 additions and 280 deletions

View File

@ -1,201 +1,100 @@
dac abcf ac fdbcga dgcbae gcbfde fgcbd agfed adcgf cdbgfea | cbfa bcafdg cbfa bafcgd
abfgd baedc feb fgde fbagcd facbdge agcbfe bgafde fe ebdfa | bef fe dgfe feb
dfc dc afegbc bcafe fcead agefd cafdeb fcbeadg cbed cabdfg | cd geadf cfd bfaec
efacdgb abefdg efagbc af afe gdeab dbfa dgefa acegbd cdegf | cfdge gefda ecbgdfa eaf
feg gdbea edgbca gefdab caefdbg egfda afdgc fe cgfdeb efba | edafbg bdefgc egdfa gbead
bfeac becfd cbgdf gfabed gdefcab dcae edb de bgfaec fdeabc | bcfdg eagbfd fedbc cefdb
bgecd cea acegfbd ac gbefad cgdae fcag dfega abfedc gecdfa | gfdbae gcaf caedg ac
acbdfeg bfea agfed cedbg gedfba bfg dcgfea bf agfcbd gebfd | fgedb aefb gebdf fcgeda
gdcbfa agdfebc ecb fgcba ecgab efgcbd degca egfbac efba eb | egbfdc bfgcda ebaf gecda
gfcade fgedc agcfeb agdcbf dcae cgefbad ce ecg cdgfa dbfge | ebgdf fgcda gec feacbg
gcade fcdbea afegcb eafgc acfdbg aecfb fag dgcbafe gf bfge | decga gfeac gebf ecgbfa
fd dceabg bcgdef dcefag agcbf gcbfd gbceafd cdf dgebc fdeb | cgafde bdgec aegfdc gcabf
edgafbc bgaedf dbefcg efg fg acfeb bdega adgf cdeabg fbgae | dgacfeb egdfbac fbeca dabceg
dfecgb ecagbfd ceagd dgb dcfb bcegf abgedf cgbde db facgeb | efabgc ebfgc gdbce bdg
bcg dbcgea cg eadfcb agfbe cagd dacbe fcbdge abcge cedagfb | dbacgfe agdc dbcfgae bcg
dgf dfea cbadg gbeafdc fgcbae fgacde gcafe dgfac dfcbeg df | egdbcf eadf agcfd gefac
da dcgfae dac afcdg edaf fgbaec ebgadc gcfea cabgdfe dgbcf | dac fbaecgd fead ad
ecd bdecf bgdefac bafcd gdacbf eafd bcgdea bgfec bcadef ed | fgbec ebcfg fedcb cfdba
edacgb df gaedf gacfe dbegcfa dfg bfegda begad dafb cedgbf | faceg ebadfg fbdcge abfd
dgeca ebdfa dacegf cgba bcd bc acdbeg edacbgf edcab gedbcf | bc ecdag cb edagc
facbde deabfg daf gdbac efcd abecgfd cgafeb facdb fd bacef | baefgc edabcf dfce cfdbea
bafg gdfeb agbdfe ag adfge aedfc dbecag cfgedba bgedcf dga | ga dgefa gbaedcf fgebd
bcfed cafe cgbefd edfcab fa bgade dabfegc efabd fda gacdbf | bgade ebfdc decbf cbadgf
fcbgdae agef bcgda af cfbaed gdefc cfa dfcgeb gafcde fdgca | dafceb dbagc adgcbfe cdbafe
aebdfc dgcf aedgcb acdeg cfe fc dcfega bfage fgace cgfeabd | aefgc dbgefac egbfa egafbdc
bfgde bcdagf bga ga gfea abcde eafbgd edgab ecdbfag fecdgb | eacbgfd egbfda cdabe ebdgaf
fbcead afcdgb fbadgce fdabge ea adec aef afcbd ebgcf fbcae | afdebgc bafedg efa dfbca
gedafb fad gfeabc dgcf dfgabc bdaefgc dfcab abedc df gbacf | fagecb abgfc df gbacf
gcdeab efadg dfbc cebad ecafd efc bfcaedg acgefb dcaefb cf | ecfgba acedb fbeagc dacfe
gdfbc aefg adbceg fgabd fdcbea fa abfedgc bdaeg baf debgfa | fba debafc gaef cdbfg
cgbed dce gdebf fdecgab caedgb ec fagced bcae dbagc agdfbc | beafdgc edc efgdb edfcga
gdcbf fcga dcfbeg acfdbg cda agebd dabcg edbacf ca afdegbc | dac cfdbg bfecad bfcedga
gbacdf agef ebf gcedb cfgedba cagbf begafc gecbf ef cafdeb | bfe bdefgac ebf fadbgce
fdacg efdacb ebgd fdagb bfd dgbfaec efgbad cbaefg bd eagbf | baefg gecafdb ebcfgda cefagb
degcf ea afecgd fecgbd fecbdag cfaeg deabfg acde bgcaf fea | ecdgf eaf agefc gefcad
afegbc dbcfea bgefdc gadbc fbeac df dfb adbgcfe fcdab aefd | aegdcfb cdagb efabcd ecafb
cbagdf efgadb db bdg fbgeac dfcb daceg acbgf fbgaced dagcb | dgb dgebfa dgb faebgd
fcedb dcbage bc cfadeb dcb degacf gfcadbe dacef fabc gbfed | gfedb dbacef dbc dabcef
gefad ebdcfag ebcgd cgefdb abcdge ebf bf cgfeab dfcb ebgfd | dgbef afdge gfdae bdgec
dgbca bg gdb ecabfd efcdgba cgead begfad bcfg fcdba cadfgb | agdcb cdgfeab fdcgaeb gdafecb
egbdac gab edacb ag bgdfcea dbega agce agfcbd aebfdc debgf | fgbadc bag cbaegdf cdeagb
gafced agdf cdefa agfceb cbgaefd gecda agc debgc beacdf ag | dgcbe fgda gfad bgcefa
afegcd gc afecgdb bgfcd gfc fgdcbe bdfca gcbe begdf eabdgf | cgdfbe cg dcbfg gecb
afb bf afbced aefbc dgceab edabc fbcd befdga ecbadfg fcaeg | fb fdabce fbdc cbfd
fedba efdbgc fecagd dbc gdfacb ecdfbag bceg bc bcfde cgdef | cbdfge bgcfde acfgdb bdc
fd efacdb bcdgef fcegb fdb dfegb egadb ecabfg fbgcdae fgcd | dcgf gfdbe gdfc efacgb
cfbea gdbceaf bdafge fge gf afgd dacgeb dbgfec abdeg gbfea | gdaf dfcgbe fdga febac
bdgeaf gacedf gedafbc cgebfd cf fdcb cbage cfe fedbg bfceg | gbaec decagf ecf cf
eacfdb fb gcabf gbdf gfbcade afb dcfag gcabe acgbfd dgcefa | bgdf dabcegf gbafc acfgb
dbeafg fac degfc fgcbad dgbaf gfaecbd bfecda bacg dfagc ca | adbgf dgaefb acbg ac
fbdagc dfcea defgc fad faeg debfgc baecd af bgfcade agfced | ecdba dgface abdec gabdcf
dcabef gcefdab cadg dbfgae ceadb gd bdgce gdb dgceab efbcg | ecfbad dcaeb gbd adbcfge
cbegf ef cebfgd gdfabe cbagefd efg baecdg cfabg efcd gbedc | debgfc gdafbe baecdg agfecdb
fagbce aefbg eafdb gebcfd ga gaf eagcfbd ceag fbdcag cbgfe | cbgafd ga gfcbda ga
aecdf bgfadce eb acgbf dagfcb ecbagf defcbg cbfae fbe gbea | egbfca cafbe ebf bfe
bcgeda cb bcaf dbfgeca cdegf fdbeag ebc dcfbae bfcde daefb | efadcb gefcd fabedg cafebd
bcf fdgcb fdaecg gfcda dbcge fb cfegab afdb fdcbage acbdfg | cdgbf fb dgbec gcafeb
dfac bgefca ebdacf gdefabc gafebd fc dbcef bcdge fbead fce | abdfge dabfe cf afebcdg
dfabcg eagd cdegb caefb cad da adbec degfcb gdecba afgebcd | edgfcab adcbgf egad defgcb
gbefc fd becadg dfg abdfgc cfgbd afdc afdebgc gcbad bdgefa | bfcdg fbcdg cgbda abcgd
ce cebdgf aceb feacg bfecga fce aebfg ecdgafb dgbafe gdcfa | cfage fdcga fcaeg gcafe
gbac fceagb gadecfb ebagf gefbc cdebf feagdb gcf cg fadegc | agbc cfg fbdgea feabg
cd eacgfb facbe cfdeab afgbd bdfac caed dbgfaec bgdcfe cdf | acdfb afbdc cdf eacd
dbfgae geabf aefcg ebcgdfa eb feb agbdcf degb bfadce fgdab | fbdga gbdefa agbfd be
cdaef bdgc agceb becgad egfcbad cabde bda efbgac bd dbegaf | befagc bd ebcgda gabdce
ae gabdfe agdbf deabf febcd acegfb edga adegfcb fcgbad bae | dcabegf dgea geda abe
eg agec cadgf fbcdeg adgfe dcegbaf efg dfcagb fedba cfgade | adcgf gdcaf gef gbcafde
gfe cfgdab gafdb geda gefbd bfdgea bfaceg fedbc eg aedbfcg | gaebcfd cdafbg afgbcd ecdfb
fgbca dbf fd ebgad gafdb bgdaef fedgcab dbegac fged dbcafe | afdgb bfd dagbe befdag
dfgca aegdfc da fcdgaeb ebdcaf deag gfeac bgfdc ceafbg afd | daf adf gacfde cbdefa
adb gcabd cbged fgdceab cbgfa bdcfae da bgcfda dagf befgca | fgcab ad bda gcbad
edgfbc fbgecda bgcfe dc aecbgf dgbc cdbfae gfedc gdaef cde | cde fegbc edc befcgd
cebdg dfc bfde cagfe edcbfg fegcd cdbfgea afcgdb ecdbag fd | fd cfd gcbde feacg
dbgfc ebcfa gfbac aegf cfbage ag feabdc gdcafeb agb dcbgea | fabce afeg bacgefd gab
abgec cefbgad gfabdc feagc fag fgdce fbae af acgbfe bdgcea | decbgaf gfecd fcabgd fecdg
fgdcb fbagde fdgeb daefgc begdcaf baeg feg ge efbda dcfabe | dgcebfa eacdfg fdegb abeg
fdaecb gebad baedcfg gcde beg dbeac ge bgfeca bgdfa egbadc | egb gaedbc aebdc fbgda
becfdag gaefbd fcga ebcgda egafcb bgeaf gbefc gc cbdef bcg | ebgacf defcb acfg fcbaegd
fdgbea fecbd ebc ecdgf bgefdca cdbfae cb daebf ebgdca bacf | decfab bce cdgfeba ceb
bgc gfeba dcagfb bdfc eabgdcf dfgca gcefda cbgdae gfacb cb | agcdbf daegcfb fdcb bfcd
adefgc dc dbcage dcgf adc fdaec cbdgfae afebc abdfge fgead | dfbgae fcdg edafc cad
egca bfcade ga dag eadcf fdebg adfcgb dacgef egfda egdafbc | cfabgd gbdcaf cabfed bdfgac
dfgacbe ae ceafd cdgafe aec cbfda edcfg cagfbe dgea fgecbd | bcafd fdagce ace ea
fgbade bfedcag gdceba bf cedafb afb becda adfcg fdacb cefb | bf fba dcabe cfbad
acgeb dabc db cdebgf adgef gbd cafegb ebadcg aebdg fcbdaeg | gabec gebca abcge dagceb
egdcf fbgdec fb gdeacf gbfd bef bfcde becda egfcba gafbdec | dbgf fcdeb bdecf bfe
af ebdac dgacef abgf ecdbfg gefbd eaf abgcfed fadbge dfbae | fgaedb efa edfcga ecbad
ge fdbge dbgfec aecgfd gef bcge gfcabd befdgca cbdfg fedab | bedfcg gdcabf fge fge
cdbgea dge fcgabd deacbgf fdcea dcagb eg caedg bgae bfdegc | adgebc cegbfd dge egba
bgcfade bgedaf bfgc edfac ecgba efb bf dgaecb caefb aebgfc | cgeba efb abedcg gefacb
dfgec baedg egbdcf egbafdc egacfb efdcag gca cgade cfda ac | ac cdegf deacfbg edcag
dfeabc ag afbcge bag bfcdg adeg fgdcabe edcab dcgab edcabg | fgbecad bdcea bacefgd bdcafe
febdg fgdcba afdbgec gaefb aecb afcge ba abf abfcge cafged | afb gcafe fbgea aegfb
dab caedbg baecfg bafed db dbefag efbcgda afbge ceadf gfbd | bd ebfad cgbeaf db
fbg dabefcg dgfc gf fadegb ebgcf cgaeb bafdec befdc fdbgce | fgb bafdgce dgcf fabdge
gdfebac gdceb fcadge fgac cbeafd gaedfb dcfae age aegcd ga | deafgc acdef ga adfcge
begcfd cgf cg gcbd agedcf cbfaed bcfge cefdb aebgf eafgbcd | fcbde fgbea febcg gcdb
befcag befdcg fcdg bcefdga gebfd bfgec geabd fd bcefda fed | cegbf cgbeaf aebfdc geabcf
cdfeba cgabdf afbdceg bea decba ea eadf bcfda fegcab begdc | ebcgd eba ea baced
bcedg ac dca gcaedf bfdae dafgcbe dbgeac egfcdb bacg abecd | daefcg acgb ac bgefcda
bfegca bf edgbacf agcef feb fdcgea cbaf becdg cegbf afbdge | bef cbaf bacf fcebga
edg afbcdeg cafed cafged geca degfa gbafd ecdfbg ge eabcfd | bdfga dgafb deabfc dface
gfa afcgb cfgdea ga fdbcg febcad aecbfg aegb fcbae dgbafec | cfbea afgecd fcgab ga
edgfbc adbcgef gdabec egf dfega fdabe fg dfcage afgc cadge | dabfe cdaeg fge befgdc
dagecb ed cdgfb edcgb becag adbe egdafc cgabfed ced ecabfg | egbdc cgeab efgcdba cbfdg
afg egdacb gf dfgca fegcab cdaef dgabc afdcgb gdbf fdgbace | dcgfba cefdgab bfaedgc ecfad
ace agbecd eagf gfbdca cefda fdbec dacfge gfdca ea cbdgafe | gbdcaf deagfbc cafgd ea
efa baedg dcgaeb febdga efagd adgbcef dfba fedgc gabcfe af | dgafcbe dfba egbda edfag
fageb edgab da cgdeb fbedag ade afgecd begcfa acfegdb bdaf | ebgfca da ad gcdbe
ebfac dfbeg ecgfab acfg cg baedfc gce gfbdeac agedcb bfecg | gfeabdc fdbge ebacfd gacf
abfcg bgfea gbc bdgefca bdacf efcg gecbaf cg gbdafe bdegca | gadebc aebdfg bdefga gc
cedgb ebfa edcba dab defcab dfeca gacedf bgdefac cbgadf ba | abced abfecdg ba cgdfba
abcde aedcf afe bcfgdae fbec adcfbe ebdgca ef dbgaef dfgac | cbfe adebc adegcb aebdgcf
fdgcea aebdgcf egdabc defcbg efcba acbed gcdae bagd db edb | eafbc eabdc eacfb fcedbg
cefbd gefcb gf becafgd cfdbag gaef cagbe bgf dcaegb efgcba | bgf fage gefa fbg
ceafb fcegda fcbead cabfg dcgfbea aecfd eb bdcefg bef adbe | fedcag fgcaed gafbc cdfae
efcabgd fbcda efcad cfeg fde adbegc deagc aefdgc fe dbfaeg | dfe ecgf abfdc eagcd
dcebga afgbc gfbad efdbcag ca cfea efgcb eabgcf gcbfed cga | afcebg gecfb ac ac
gceaf dafgceb afcbeg geacfd fbcead bfa fb gbef acbfg acdbg | acgedfb fb gbdac fab
gbf bgecfd adgfcbe bfgec bfcgda efdcab gf defg bdcef gecba | dgfabec bfg fg becdf
dg dgb gbacd bdagfc gafd gaceb dbacfe fgebcd gfdaecb cbfad | gbecfd cagbe bdg abdcg
cdgbe eadcg dcb db bgecfa cegbdfa fdeb acgdbf becfg decgfb | febcg cgbde gfbcae edcbg
gcfdbae dgf dgeca dcfge dcegbf fcdeba fedcb gfbc afbdeg gf | edfcb dbafec dcgfabe fg
dfbaceg ab edcfb adb egabcd dgfbac fbag cfbad fagcd gedacf | fgdabc ab feacgd ab
debga ec edc gfdca agdce afegbd aecdgb bcea cbefgd baefcgd | gadfc defgcb caeb abce
edabfc fdaeg dgacfe bdacfg cfabdge efcda fgd gdce dg gfbae | abcdfg dfeag edcg acegdf
bagcfe afedc dbec fadecb fbdega ed afdcg aefcb efagcdb dae | cbedgaf gefabc decb ed
abe fadecg bfcage bcdafe ecfad afdgb afbde be bedc bfeacdg | bgfad fcdgeab be bcfgead
bf decgb efb bfegdca bgfd adfce fcdeb gabefc cdaegb fecbgd | decbg fb gdebc gdfb
gfcbed efdcb dafbcg db gedb deacf cgfbe bdf abfecg defcagb | bdfec cfdeb bd adecf
gceab gefbda bdegafc fgbd bedacf egd agdeb daefb fagedc dg | dg dacebgf bafegd edg
abecfg dgbca egc aegcb acgdfe agefdb bfec ce ebcdagf bfgae | bcfe bcfe acgbef gfedcab
bfacg eafdb cadbge fecbad gcbdafe ge dabegf egfd gae abgfe | ge efgba faebcd dafeb
gebd db gbcdfea fbd acebgf fedab agcbfd afecd befadg gbfea | bdeaf febag fgecab afcebdg
defac gdbfce dfbga deagbfc geadfb cbag cdafgb facdg cgf cg | eabgdf caefd cbag gfc
dafbc fgead edgfac cae gdabec fgeabcd ec acdef debafg cgef | ebcdga cgfeda efdgac cgeafd
ec dcbafe gbafcd dfgbc dec baedfcg faedg egbc egbfcd dgcfe | dce gbcefd gabcfde adcfeb
cbegdf ad aecgf befcad agdfc gcbdf adc cfgdbae dabfcg agdb | bdga bagd fcgad ad
edcbafg ab eafgcb ecdba egfdcb fcabed debcf abdf eba dagce | aeb dbcegf geadcfb aeb
bg gcefa aefbdc bcgae fbegacd cadeb fcegdb bgc eagcbd badg | bcgea adbfcge cebda cdegab
ebgad gf edfcb cegdab dbaegf agfd dgbcefa efdgb fbg gabecf | fcadbeg bcedagf dfbge gdaf
gbcfea ecdbga cgebf bdefcg fdbe de acgfd gedcf fecdbag ced | edfgcb fbde beagcfd gecabd
gfdceb aegbc ca cbdafg daebcg bac edac gcdbe abegf ceadfbg | ca bca gdebc decgb
cbfea fgadbe eacgf daefcb fgdeabc acdb ba bgecdf fba fedcb | cdfbega bcfea ba badc
cbfge bdca dgeba dce ebgcd dc gdebac fcgeadb beafgd fdceag | ebgcd gcdfae begdc agbde
acg cagdfe cebfdg dgcfa fdbac gdcef baegfc acdegbf ag dgae | cadfg efgabc egcfad dbcaf
bfae ea eadcfgb dcgba dacefb dcfaeg dae bdcef decba egbfcd | dgcba cdbeaf cedbf fcaegd
fcga agbedf edcgaf ca dabcef fegadbc ecgda eca gcdbe gefad | ca ca dgebc eca
bcead fd gbedfa adcgefb fdgcba bagfce adf fdbae dgfe abfeg | ebafgc fegd dfabe edgf
bca cbfgea cdabfe cedfa fdbc cgabefd cagdef eacbd cb bgdea | dcbaef cb bfcd cab
baedgf debaf edga bgafedc bda ecfbd ad bgdfac afgbe abcfge | aged bfedc abd cdebf
acgdb agcdef egc baefcd cfead fbdgeca ge dgace gaef dgcfeb | cbeafd acfed ebfdgc fdceag
dbegfa ef fbagce dcgfab efb agfbc cegdfab fecg dcbae aefcb | bgdfea afcgbe fe bafcg
eabdf fegb aecfgbd fg cabdgf agf dgeca adegbf dacfbe dgefa | bdecafg fgbe agbefd fabed
gdbec facbeg gbedf egabc dgaebc dcb adgc baecfd cd ceadgbf | dc dc cbaefd cgdbeaf
ef cfgab fegbc bdecg adbcfge agebfc bafcgd acfe ebf dfaegb | fbdgae ecfbg feac afec
agdebfc dae ecdf bfacge fegca dabcg de gdace gdabfe cfgead | egbdaf gabcd dea gfbace
ecg gabce fdecbg edacgb eacbf aegdb cg fcbeadg abgfed dgac | dbgae gec geabc ebcgdf
fabec fd egdfca dcf dcfgbe dgeabc dgecb febgacd bfdg dfbec | beacf df egacfd fbcae
eacf gfebad cefgad adcgf af bceadg dfa bfdgc gfeadbc ecadg | adf aefc dfagce caegd
afgbec fbgdc ag gaebcd agc gfdeacb bcefa ebcfda fgbac fgae | fbgdc bdgfc agc dacbef
bc bfcad cbgfed baec cbd fdacg fdbae aedgfbc faegbd cdbfea | ecgbdf gfbdea dfcag beca
bedgafc fbdea efgdbc edg cefg fbgdc eg cgafdb febdg egdabc | fcbgda ge cbagdfe gbdcf
bgdeca fadcegb adg cfaegd bdae edcbg ad bcgfa cadgb fecgdb | dafgce gecdba dbfegc edbgfc
ecgafd faebg gbce defbacg ebfagc eab fadecb be aecgf dfgba | bfgae dfabgec efacg ebgfa
edfg fad bgead cgaebd bcdgaf fdebgac dafgbe ebfac badfe df | eabfc begfad dgbea dbeaf
cdaeb acdbfg gfeac aefcd gecfad gefd bfgcae fd beacgdf daf | egcaf gbdafc bagecf fedg
gf aefcd adegbc fecdgb gcebd fcbg cgdef edfabg eadbfgc dgf | bfgc bgecd gdcefba abcdeg
gfdcbae cegdab ecgbf dcabef cegdb caegf fbgd bf bfe edfbcg | bf cbfeg ecfag bef
befdga bcagdef ebgaf bcfega ce cbge gfacd cae cfaebd eagfc | fdgeab cgeaf fgceab eacfg
adgbe gcadbef gbfe befadc fdbga agced bde acbfgd fgbeda eb | abefcd dfcaeb gaecd decga
gdbfec fbdce fgcade ebadfgc cb eacdgb bcd edfba fgbc edgfc | gfeadcb bfead fgbc cbd
dfaegc deabgc fabdceg gcf fc fdbcag cfde gacfe fbeag aegcd | afedgc gcf cfed fdec
acdfb dfaec bdcfga ceafbg gedabc fbgd bf cgbad cbf fdgcabe | bfegcda gadbc cdefa caedf
cfgae dcfageb gbdf gebacd edcfg cdg cdbef dg cdfeab bcefdg | geacf dfgb dg facge
gcdab dabgec fecadg ae cbadgf ade cbaed beag cebdf cbdfgae | bacdg eda facbedg gfbdac
fd dfgbcae bdf fgbda cgabf beagd cbadfe gdabfe dbaceg fdeg | fbd gdbae cdebgaf fadgb
ecgdb bfdgec fce caebgd fc fageb fcedga gcebadf cbdf egcbf | decgb cdgfea edcafg cfdebg
bafgd abcedf egb bdacge fageb adecfgb febcag fecab cefg ge | ge bafec ge ge
agcbd dac dcebfga ac ceba bcged gaedfc ebgdca adgbf cbfged | bgfad bace fecbgd adc
agcfd cag gbecfad agdfe gcedfb cbad ac cgbfae bdgcf acfbgd | gbafcd eafbcg gdafe cgefab
geadfc bfeg bf bcf bdgca ceadgbf eabfcg bgcfa cfedab afgce | acefg gacdb agecf cgbfa
aecbd afced af dfcge afbc edfcab cgbeda gabfde afd faegcdb | fgedc dfaec bdfaec cdegf
dcbfge ab bdgeca bae gcba debcg dagbfe gdeacfb acedb acdfe | cdbgea adgceb ebdca aegdfb
ecfadg agfce da cfbgea dae aedcg bfaced cgdbefa debgc dfga | eacdg afcebd faegc bafegc
df fdg dfcega gfbce aebdg bdafge bfad egbdf dbafgec acdgeb | afgedb egfdb df fbad
eafbc egbac fcb cf cgbadf becdagf cbdaeg efagcb aefbd ecfg | cf cf cgfe acegb
fceab cedfabg fc fadc cgbea bdfea egfadb gecfdb fbc abcefd | bfc ebafc aefcdgb bcafe
gb efadb dcefba fdcga fgbaed fadgb feagcb ebdg beacgfd gab | gb feagcb gb acbdegf
ebc acgedbf gcfeb edcabf bc bcgefd bcdg gcefd gdfeac egbfa | gcdb gcdfe cdbg dbafce
bgdc efacdg dabce begad cgbaed fabeg baefdc fabecdg gd edg | edabc gd geabf gafeb
gaecdf fabc fgaec bc bgc gcfbe bgcdea dgebcfa efgbd afebcg | afcbeg adgfbec gcb gebafc
aef facedg fdgbce cade fegcd fbacgde faecg gfabc egdfab ae | bfdeacg edac eaf fgedacb
eafcgd cebgf fdc debcfg dbcfg afbgec dc fdbga dbce cedfabg | cgeabf facedg bcaegf bdfgc
afegbdc bcaefg decba gdfb aedgfb efb adfge bfade agefcd fb | cfaegd gcdafe ebadf gecfad
afcb bgdcfe bacdfe ceadf cbefd caged bgedaf af egfdbca fda | adf ecbfd efdbc adefgb
cgdaef eagfb afdbge gfedb ecfbd agbd cbgefa gd agcbefd dfg | agcfbe fgcdae fdg fgd
ed afbge fbcaeg bcdfa gfeabd gfed egbfcad geadcb adbfe ead | begadc abefg dea dea
fceba deafbc aegc edbgafc bfdcg ag dbafge cfbeag abg cafgb | gab agb abfegd ecga
fcedg cfdaegb dbfg egcfbd bgc cgbefa cebgd ecbad bg dceafg | cgb fcbgae ecbda gebcd
7988912498775677899976544676789212346793989896459876543679986778999879896543234965421014567898756757
6777924987654686789987632345678954569894978789398765432456895569998965799765459876592923458987541246
5456896987823545569876543566789995778999765678979986544578923459987894678976599999989899567987620134
4345699876710123499987994677897989989998754567954397755989013498765953566989989998766678978998321345
2235689765324648578999789989976768999987643678964219876789129579654212345898767987654568989876543459
1024569879534787689998689898765656789643212567895324989899298998732101256789959876552456898998765668
2137978998755698798987596789843245698775103456789765693998987899899912487899849865431545587899878979
4346899659876899987656434695432167789874312569899876964987876789987894568989723987420123456789999989
5657896542987899998543326479943278993965643678956989899876755799876795779876545696541344678996989999
6788976321299967987632101267895389012396864989643498798765434598765689889987656987655456789865467899
7899985410123459998843212348996498923987878995432987659878321987654898992398997898769767897654357898
9979876653237598999954423456789987899798989789544598434987210398765987821039998929879878986543234986
5668987954546987899985534668899976587679998678995679645696531239878976532129999212989999775444129875
3456799875659876899876645789989897434599902456789798956987642449989876545298789423495497654321012954
4677999996767985689987766899876795323989893487899987897898743658999988656987679934984398767443199743
5789989987979876789299898999975689919979789678999876789909869767919899767987567899876209976564987621
6899979999989998992199979898754599898667699789989545678919998978909765979876456789998212987676798510
7998769897598679999988466789876698786544578999875533569398987899998954599765347899989323598787987421
9878656789434567898976365679988987695433489998764321239497676899987895679874267999879946679899876532
7765347996545698987654254598999976543212568969976443998974545798946796799842157898768899789944987543
6673234789956799798762123767899989874323678957988769887563234587897897987652046989857678996432498667
5410123567897895699543013459989998765435989348999898765432123456789979876543135678943589789321298798
4321244789998934987676434678979999896546990245986987654321096567898765997765647899432423578932349899
6532345998999326799898945889768799987667899366965398965439989778987754598978956895321012456944569935
7643496987894315698949767999654678998789978979893219878998878999996432989989767976532123467895678923
8789989996789504987656989798773239999993467898799101989997656789987599778997978976546234678987799212
9899879985679423498767894659982099987812456987678919999986547892198987666896989987664345799999989903
2998769864568945589978953545894989876543667898789998899876535989019896545799993499875456896789967894
4987654953456896678989542123799876997864789999898976789987323569198765434878932346987667985699856789
9876543212349789789199965345698965698965678999987965679893210378999767323567891234598778974598768999
9987764101234678991019896459987654569876789788965754598765321289898653210379990123479899653459879998
9999853213345789432199789767899932157989893567954323459898535696799864321245689294567939778567989986
7998765435456898953987678998999893249897902467893212699987679895999978442467890989878949889679895354
5679979545567987894596568989998789998776212379989301989699789924889989766579931979989999998798754213
4343498758799876789987879878987656889654323569979999876529893212679999878689999868999989989899842101
3232349767987915679999998769898645778965434598765789765436989101567998989789987657899878978921943213
4101234989875423467898764546789434569197545698764678976545678912345897694999996645678967967939876454
3213445999995434898998753437678928789019678989912467998657799424556789543239865434567956756899989876
4324557899976545699999542123569219678998789974326579349779897435678897654345986323478943445689391987
5436898967987676789987541012789901567899898765987891298989986545679998767459875212357921534789210198
6545989978999887899987432124567892457892949976798932397997897656792129879679954323569210123494321249
7679978989989998999876573336678953767901234987899793976896999877891099989898765654678921234989934956
9798867899978969899989876457789764889212346799978689875699899998932989999999878965699632349877899897
8987656989767456789593987567999875999329987989767598986789678999545978929876989977896543659766789798
7757645779854345995432097678999989998998998976553467987894579899999769019865699988987654599854347689
6545434567943257896543998789998999997987899965432438998913689789887658998764569999998765987843235568
7432123688954346789669899899876899875676789876510129999524598598766546789543488957899899876452123467
6543334799765457899998789998965698763245678987542247896434597439854235699854567899989943995321036799
8754455999879568999887678987654569654356789876543346789675986429863146798765679998768994987432145678
9965667894998678998756569996543479875456799987654567898796975310954345679897789987656789876544287789
9987878943459989989545467897695689976569898798967679969998976429865766789999898996545789998955398999
8798989895698799879721256789789896987678999659798789954599986539876988896789956789434589219765456789
7659395689987698765430145698999965499899998734569898893989697656987899965689345678923478909896667998
8543234569876549876981234567998977345998989123456986789876569767898998764578956789014567896998978957
7654109678989656999876545699997894239897878935769975678925459899999987653469987892123478945789989546
8869298999598767975987656789876789129776767949898764599212399956798998532357898943234569435678998734
9998987989439899864398967898985789298545456896999753479901989532987987620578999769357678924579987645
9987675978921999872109879967454599987434345965987654567899878993986598321234899998998799314699698656
8765423567890199943223989954323459886521239894598965679998756789765459543466789897999894323987579868
9754313458921987654434599893012398765430456789969988789893344598764349874678994786898965545999456989
8742102567899899876546999762124679965321345899856799899672223579653298765679563535567976659898968999
7653212348988789997999899854345789986732456789735678987521012699862139979899432123459999798767899109
9854323459976578989789789987467896597653468898623489996432359985989345989987541014598998987656789398
8765434899865459876566678976578999439796589997544568987546598874695456794598672123997987897545678967
9876646789654321995434589987689997929897699989659678998669986763498768893359987439876876989439999856
9997797899995210987657991099999896899998789678998799879878985452349879921267896598965385678998779645
8998998999889921298968993298899765689999894568999893656989876321245989542456987987854234567987656434
7659789988677892989879589987698954569986953467897932347999988454346797656767898976542123457897542126
6545679876566799878989679878567895698765432399976431349899876567857899777879979987643235578998631018
5432398765455989766899789767458999789876591988997653498789998798767979888989765698954545678997632346
4321298774344678954668998654345698999987989876989768987678999899878965999698913999875659789986543457
9543987685123789543459876563234567899899878765878979876556789934989893234567899878986789998997654667
7667898543234696432345998434145678998798765674567897687445789123499799013498998765497891237998876789
8799999657345679321236987621012789987679974553456799543234591013987678934989987654398910956899997895
9988998765456789910449998732334567897598763212345698987445989125696568945978999873219999899943459923
9867899876587997892348999644645688935459754323457987896589978934987479899869345965423988798991292101
9756799987998966789556798767856799322398767434598996987679867895699356798758996987554977657989989212
6845789998989655678967899878997899901459878875699885998798756789898769997646889998699866545976878943
5434677999876543489978978989298998892347989986988674899999348898989898785425677999987654439895657895
1012346897998674568989569592129556789456796799876532789993201987878997654304556789875432129754345699
2129578956798785679392398431012345997579985689965321679987512986767898743212347999986573098975212688
3298989245679898789101987549124459899998764569879433598998434975859999856423467898987654987654303567
4987892134598989898924597698939598768899878698998944567899549864348989998644568997898865699965212456
9876989012987665967896698987898698656789989987897956778989997955287678999757689456789976799864343567
9765678924598574456998799756789798638998799986986899889679876543124567898768794347893299899875456878
8954689634999432347899898945899909545999698765455798997598765432013478939989894236789345976996567989
7653499549898921258789987834978919696789569654344567996439896563123599023598943145678967895987698999
6532368998767892345678996521467898989893498743243456789545987879234789146987654235989879954599899549
8743456789759789557899865410356987678954987652102567898756798995365693234598964347899989893434999698
7656587997645678969998765321269876569865698843213678929877899876876895397699895456789398732129888967
8767899987657899878979765433345988778978789956523799545988954987999976989988796568890297643498767456
9878999898767999989568986544578999889989898765434999796999313399987987978979689979991298764989854321
4989398799879889995467897655678933991296929876645678989876501239876899867464578899989999879878965452
5794219654989678976345898766989321390965410989876989667988213398995679954343456789678878998765987674
7984398763494567898656789879995490989894321297987899545599754977894569865212367896564767999954598895
9875459982123456789878895998976989879789432996798978923498769865323498765423498998323556789863989976
6996569971012358997999934987899876565678949875439569212459879973212549876434569657212346999872975498
4987698763123457895432129896798765484579898764323459103456998764301234996545879543101867896989854329
3498987654235767996321098765789994323456789871012348914577899878412346987656989754563778965498754312
2109998767346878976543459434679876107689896532434567899789913987523457899767999986774689764349962101

View File

@ -1 +1,5 @@
acedgfb cdfbe gcdfa fbcad dab cefabd cdfgeb eafb cagedb ab | cdfeb fcadb cdfeb cdbaf
2199943210
3987894921
9856789892
8767896789
9899965678

View File

@ -6,90 +6,43 @@ const INPUTS: [&'static str; 2] = [
include_str!("../inputs/input.txt"),
];
const fn map_to_segment(c: char) -> u8 {
1 << (c as u8 - b'a')
fn parse_input(input: &'static str) -> Vec<Vec<u8>> {
input
.lines()
.filter(|&x| !x.is_empty())
.map(|line| line.bytes().map(|x| x - b'0').collect())
.collect()
}
fn parse_input(input: &'static str) -> impl Iterator<Item = (Vec<u8>, Vec<u8>)> {
input.lines().filter(|&x| !x.is_empty()).map(|line| {
let (hints, displays) = line.split_once(" | ").unwrap();
const NEIGHBOURS: [[i32; 2]; 4] = [[-1, 0], [1, 0], [0, -1], [0, 1]];
let hints = hints
.split(' ')
.filter(|x| !x.is_empty())
.map(|hint| {
let mut out = 0;
for c in hint.chars() {
out |= map_to_segment(c);
}
out
})
.collect();
let digits = displays
.split(' ')
.filter(|x| !x.is_empty())
.map(|hint| {
let mut out = 0;
for c in hint.chars() {
out |= map_to_segment(c);
}
out
})
.collect();
(hints, digits)
})
}
fn decode_hint(hints: Vec<u8>) -> [u8; 10] {
let mut out = [0; 10];
for &hint in hints.iter() {
match hint.count_ones() {
2 => out[1] = hint,
4 => out[4] = hint,
3 => out[7] = hint,
7 => out[8] = hint,
_ => (),
}
}
for hint in hints {
let one_overlap = (hint & out[1]).count_ones();
let four_overlap = (hint & out[4]).count_ones();
match (hint.count_ones(), one_overlap, four_overlap) {
(5, 1, 2) => out[2] = hint,
(5, 2, 3) => out[3] = hint,
(5, 1, 3) => out[5] = hint,
(6, 1, 3) => out[6] = hint,
(6, 2, 4) => out[9] = hint,
(6, 2, 3) => out[0] = hint,
_ => (),
}
}
return out;
}
fn solution(input: impl Iterator<Item = (Vec<u8>, Vec<u8>)>) -> i32 {
fn solution(input: Vec<Vec<u8>>) -> i32 {
let mut answer = 0;
for (hints, digits) in input {
let decoded_hints = decode_hint(hints);
let mut out = 0;
let offset = digits.len() as u32;
for (j, digit) in digits.into_iter().enumerate() {
for (i, &hint) in decoded_hints.iter().enumerate() {
if hint == digit {
out += i as i32 * 10i32.pow(offset - j as u32 - 1);
let m = input.len();
let n = input[0].len();
for i in 0..m {
for j in 0..n {
let mut is_minimum = true;
for &neighbour in NEIGHBOURS.iter() {
let x = i as i32 + neighbour[0];
let y = j as i32 + neighbour[1];
if x < 0 || y < 0 || x >= m as i32 || y >= n as i32 {
continue;
}
if input[i][j] >= input[x as usize][y as usize] {
is_minimum = false;
}
}
}
answer += out;
if is_minimum {
answer += input[i][j] as i32 + 1;
}
}
}
answer
@ -105,9 +58,9 @@ fn main() {
#[bench]
fn solution_bench(b: &mut test::Bencher) {
let input = parse_input(INPUTS[1]);
b.iter(|| {
let input = parse_input(INPUTS[1]);
let result = solution(input);
let result = solution(input.clone());
test::black_box(result);
})
}