mirror of
https://github.com/parnic/advent-of-code-2022.git
synced 2025-06-16 13:40:13 -05:00
Day 8 solution
I'm sure there's a cleaner way to search in four directions rather than manually running each loop like this, but I didn't want to mess with genericizing it just yet.
This commit is contained in:
@ -42,6 +42,7 @@
|
|||||||
<EmbeddedResource Include="inputs\07a.txt" />
|
<EmbeddedResource Include="inputs\07a.txt" />
|
||||||
<EmbeddedResource Include="inputs\08.txt" />
|
<EmbeddedResource Include="inputs\08.txt" />
|
||||||
<None Remove="inputs\09.txt" />
|
<None Remove="inputs\09.txt" />
|
||||||
|
<EmbeddedResource Include="inputs\08a.txt" />
|
||||||
<EmbeddedResource Include="inputs\09.txt" />
|
<EmbeddedResource Include="inputs\09.txt" />
|
||||||
<None Remove="inputs\10.txt" />
|
<None Remove="inputs\10.txt" />
|
||||||
<EmbeddedResource Include="inputs\10.txt" />
|
<EmbeddedResource Include="inputs\10.txt" />
|
||||||
|
299
inputs/08.txt
299
inputs/08.txt
@ -1,200 +1,99 @@
|
|||||||
fbead dcabe bcega gfbecd ecd dgac cd bedcag agebcfd fcagbe | ced cgbefad gbcaef cd
|
200120010031113332213034140102430141241124321111512323442304040044220141342121012210022220211111200
|
||||||
bdef fbgeadc gabfc fadegb adefg abe be decagf dacgbe begfa | dbfe gaecdf fbgae agfbe
|
111021120230012003124233312003010303204555454332453445353125225214221214442214301113012111020220220
|
||||||
gad cgdfab ag edacgb agbfedc facdb dcebaf adfbg agfc gbdef | dga gacfebd adbgcf adgbce
|
010000112330232223210123331341111021455213441355415452453433542411022110033014112420103200010200112
|
||||||
cebadf gadcf egabfd ecabdfg gfcbd dacef geac ag afg fgdaec | aegc gdeabfc fgedac eacg
|
210220131023203033023421012411405531115123145115445215311422135252541100222231431331003220231121021
|
||||||
ceafb gcbfea eacgdf cegb eag bgfda eg fdaegcb ebagf adebcf | eg adgfb ge ceabf
|
020112210133112114444340100410411231114131452544155151415233415312511222041221113442132231003203100
|
||||||
gcdfeab bfdcga gdacf fe fae bdefga eafdgc fecd efagc aecgb | dcef fea cgfda gbcae
|
121210122332301142321211440441113455552434332511455325315545354524142541534411112013143013120333022
|
||||||
gbdce cfdbg efbd gbaedcf dge gfcead bcgae de bgacdf befdcg | gde fcbadg egdafc dbaefcg
|
002022223332143323320030004111431434153352153321414154453442552321332341355132444030442110103203212
|
||||||
adgecf agecdb dfcag cea dafgebc egbfc fdea ea agbfdc caefg | gcdfae aefcbdg fdgebac eac
|
212130023213100232130230411132244242133251435525323326611211534441513532233340420321144212221332012
|
||||||
dgcea acfged eagfc abdec dcg gd efcgdb adfebcg bceagf adfg | dfag dgebcaf dfbcage dgc
|
112201210213131241203033341411115513233426453426433653356253533133113511115222441140433214102332200
|
||||||
aedgbf dgfabec aefb edbgf gabdc ea gedfbc cgdefa dea baedg | ae ea eadbgfc fdabge
|
212012000101044144022321521321444445566546646625625665232323663631331412343532242340023204432003233
|
||||||
afgbde agbef df fda caegfb efdb fgdbeca fcdgab agedf cgead | fad df fd bedgcfa
|
101233132121222100241254211542133266356326564552445466322626353633223221135151311240430411433022011
|
||||||
bacdge gdecbaf bdfcge fabec dc dec cfbed gedbf dcgf agbefd | bcedf fgbed bcafe cfbedag
|
200132020222314334333551152431232424524623645555522366665322366466545513112135535223102441334310202
|
||||||
gbcafd bcd db begdc gedcfb bgdfeac cgdef dbfe gceab adecgf | dbc bd ebgdc bgcfda
|
023113000020114221524122422222662645435544455234636242322656464245462233555511334411233402112203303
|
||||||
ebafgd dcafeb ag gfadb aegb agd edbaf adcefg gcdabfe gdfcb | bgafd ga ga ag
|
323212301014434412315252233452332225554646452654545433445553336343544664455435323243510303023142200
|
||||||
gcbfda acd facdb aecbgf gafcb ad agbfced bacdge efdcb agdf | gbdeacf ad bgedca dcbagfe
|
310022200424121333144123222262332322343322244646667564465544426245466232342143412141451122001041322
|
||||||
gfae dae ea ecabfd edbgc aegdc cgfdae fcadgb facbedg gdfca | dfeagbc cdeabf dea ea
|
212301111322001335441132334525635254352425553354565445643472236236266635446421522132452121404230333
|
||||||
egafb ec dcegafb fcdag bcef cae cdgbae egbcfa abfdeg eafcg | bfacedg ace eca afgdc
|
222212444300345211222512256444456624535343536756355746664436374344346652444335121144422222340114403
|
||||||
bfgadc fabgd fcgb gecadf adceb gc cgd dabcg gadfcbe eadfbg | gbcf cebda cgd cg
|
133103420101433344253425324366444265345745457464444766674564476573243345254266312555221132304022243
|
||||||
abfdg dgabe cgbead efdb abfgced gefbda daf cfadeg cbgaf df | gfadb egbda bgdea bcadgef
|
104024111323421413115464433455553477333456354575666765646757774776752425462423244113225443242031103
|
||||||
aebcf agdbf adgbfce agbfec egcf acg bgacde cgbaf dfeabc cg | aefdbgc gc efadbc gc
|
102001244212344453145353232652647556546465453563544776667356374453675332254663444121345213131024201
|
||||||
bacdfe baefc edacb abcdg bafdge cgfbdea de cfebga cfde bde | ecfd bde cfbea fagebc
|
224444241243433331136646422564367344447534333336573546336576477746463642222264422255444411444213332
|
||||||
cefd cf afbegcd gfdcab adegfc baegf dgcea fcg cgebad gfeca | gdeafc fc decbgaf gedca
|
111102440221143134255523244546456346745346547453543465664363545634575433436342252431313443241200434
|
||||||
dgcae eadgbc eafdgcb ad badg deabcf gefdbc ade bdceg fcega | ade acedfgb acegfdb becfda
|
134231321331555233423635635366465473563535535586445888474374535544636375425246452265522242444124430
|
||||||
bfadecg cfadge bcgfd bceagf deabfg edg edca ecafg cfedg ed | cead deacfg ged gbfaedc
|
234112414314111344422243544643454775656784865866884848444877466476364476356322553554245224411411221
|
||||||
egafd dfbgcae bdf bfade dgbcfe bagf beacd fgbdae cefgda fb | fb gabf bfd cefagd
|
034400114351525345222546546744637535635657575787587675474664764764736443646462322222525151425423322
|
||||||
afedbcg eadcgf gebdcf agdfb ceagf baecfg de gaefd cead egd | bdeagfc ecda agbfd dgafce
|
200214241324215322354446653764777674587466544685754678446567884767437556756324542252661541311422130
|
||||||
bcde bc fgdceb bfc faecdbg adgfb cdfgb fbegca dgafce fdegc | cdgfbe fcgde cfb fcedg
|
343144113253113264625454456777333344687566876677476786864558645875776364454562645333232242321313142
|
||||||
bgacd cbf fceda fb gacbdf cadfb bdagce fegcbad beacfg fbgd | ecafbgd bfdg gcbdefa eacdbg
|
343024121143435322432236376444777668467756646886688564457885758774655565674476525265433235351133020
|
||||||
dgbec afecgdb fbgce dbgcaf becdfa bagcf efb ecfabg geaf fe | fegacbd ef fcbge abgfc
|
403402124545255442342535445764457654765745674556784877787445455686478773563733543423236235255444144
|
||||||
cedfg cgfaedb fgcdea gacdf gcae begdaf cdbaf fbcdeg ag gad | gcfebd cadfeg adfcb afcbd
|
103322531152132266562676355566367676848756788886766967585484486646776553753344443262466623351341241
|
||||||
edgcfba cdafb agd cbegfa dfagc acefg cgdbae dg dgceaf egfd | fgecba gad aebgcfd agfcd
|
310355244513624552353465735465555764667556575665597778969594858667646774744555337236256442514154340
|
||||||
afecdg bce gdeca cfdgbe bgca cfabegd daecb bfeda gabcde bc | bgca bec gabc bc
|
023311451112523462333545544537465688645559988688956997665697964748587858337347363225646321434554144
|
||||||
fgbdc gad ad eabdcgf gdfeac ebdfag baegfc gadfb ebad begaf | ebda dfabg adg bdae
|
320135522136342345436443367666564847488558589757575579796688785767645678467555334323622425311134113
|
||||||
bgec dbfga degfc eb deabfc fcdage bfe gfbced gfedb gfdcabe | bcge begc efb bcgdef
|
302355525243323546577736555686874886486985688686888898966978978668487864787645754566534465541511251
|
||||||
efbga bfeacg dg dfg afdce eafbgd adbg fdbcgae fcdebg eafdg | dbag fdg fgd gbad
|
334125312126266532347576536548547584696886997768569758698995755875465674754333433642553345425533431
|
||||||
cdabe agcbdef fgaed dbcgea fbce bfacdg fb faebd dbf fadcbe | bcgfda bf fb fb
|
341111335132225635365534457665748575977867585959997886979957965558787465664637533766462255534332423
|
||||||
cdafbe cbdagf fcgade fbage fbdae fdbca ed efd adfgceb bcde | ed adcbf bgdcfea ecbd
|
332515314534343636736373478687676678865555895657977886779567677978977887466835476754353523355412552
|
||||||
fgab gfacbd gfdcb fgdecb eagbdcf bdacg ag gad edgcfa eacdb | gcfdba fgdace cdegbfa agbdc
|
223554423243256435734467677444784886576856669787898778968956989875566754875777467667635224535114135
|
||||||
egcaf gdecbf beacg cfba dgfeabc abfgec baegd bc ecfagd ecb | bcaf cbaf gdecbf ebc
|
155522522343322534364735656868875656687568869667769697877887796866975856457447636733764232364431215
|
||||||
agfce cgedfb gbdfe daf da febgda cgfaedb adgb dgefa ecabdf | bdfceg dgab adf gadb
|
242345244424435673345476658556448689589759768689899966877768987857579874745884637474453634352133231
|
||||||
begadf deg aecfgb aebgd aebfg ceadgfb fead ed dbcga egdcbf | ged fcgeab gdaeb de
|
415255446645436567674735664645455855996887768879976678686967768687868985856885736776326622253351232
|
||||||
ad debcf deabgc acegbfd daef febcda cgebdf bcafd cda bfcga | acfgb cbdaeg gecadb acd
|
345511155426334655353457846578475998667966669787979667866969678557875668566464436456435236255355314
|
||||||
fadbeg bagdcf bcda fceag cfd bdgfa dabgefc cd bdcgfe afgcd | acbefdg dc gfcea bcda
|
142554534636264637437346664558867877978687978689679869967766679569789677485678377367342526223134543
|
||||||
fcbge bg cgdeaf bdegcf beg bfeca gbdc agdefcb gcdef bgefda | egb bgdfaec bg feacbdg
|
445152112563265336347774464854776998568899676687677797996796877777879786686845577654534235322155423
|
||||||
gcfabed dae geaf afdgc dfbcag cgadef dcebg defbac edagc ae | cdgae ae eadfcb egaf
|
333311452256452445537757558677965658888896678979799998788899698785896978877575444547572432544335251
|
||||||
ceabf fabcge cgfe gecabdf dgafcb bagcf edfagb ef cdeab feb | acbgf fabecg bfe badefg
|
153342523322435374455644657476596955598987666997999878876686677879688676464687476363732553363413554
|
||||||
adg bdfaeg bacd gcebd cgadbe da caedg egfca bfgdace fdbecg | dcab cgeda agd ad
|
144335145664565566437454557675966795686769969779977988878679878778787789465465637576634655354532332
|
||||||
cbdafge ecbg fabec caefgb cb abefd fcdega bac adbcfg efcga | cb gcbe bac dbgeafc
|
152415343652336664567566647557776598677998979889877998977867798897785759685544636646555455665423232
|
||||||
gfcbad fbc cf ebgaf acdbe decbfa dcbeag cdfe efgbdac fbaec | aebcgdf bfc dcaebfg edfbacg
|
233452324356364643433768554555595977968766779897887998898666688775789556775758843355374525244243434
|
||||||
dgcf bfaedg bdf cdagbef cbead df cebfg gdcfeb fbdce gabecf | fd begcf df df
|
415514136342636535455644448567857957878867697988999887897878896698589669784466744746433345345355353
|
||||||
bc egcb efabdc cfb gefdba cbfgade gbdef fdcga gfbcd gbdecf | cfagd ecbdaf cbf dbfcae
|
232342145445335734443368474877857768999979889789879797978786868766697957448687837436437246435352325
|
||||||
bc cbe cfega gbecaf fdcega dbefa cbgdfea efacb cdbega gfbc | dgceabf ebc bce fcgb
|
423142134652644455355368647749855698998886897798977997799867788779868756865564445675347463653623132
|
||||||
cf gfcdea fdage gfc dgcfe debcg fcbdag gefdba afec cgfdbae | deagbf eacdgf dgcbefa dfgec
|
221215125542657466763755887857659858677696867997877899797779899996787779754784846775376254442211254
|
||||||
cdgfbae bc ecabd cfabdg dfageb cfeda debga abc begdac egbc | bc cb acb adegbc
|
154531463524644747547747455647685566769977767978799879788898879798999996758665537564563322242224125
|
||||||
fd caegfd fed acfegdb bcfed cbadfe abfd bcaedg egcfb eabcd | dcabegf cbgdfea bfda cadbe
|
114543323332546776763457675777969696978788779877889799879998997975759878686666834757774555334611241
|
||||||
dbgac ebd faebdg afbcdg efcbg aedc dbgeca dcafgeb gcedb ed | aced edgbc ebd ed
|
353441154256436766664748544445957885788777978878979877989798876799786999466647747557553324526153313
|
||||||
fea dfbga bcedf fgadbce ea aebg bgfaed gdafec dbefa bdgcaf | abdef gdcafb dgbaf ebfad
|
433233236244364537664567776764977668967888876787887977898978679686668778764647857553662664333221513
|
||||||
eac afdecb dbegca acdfb dbacfge ea bcfea ebgfc fade fadcgb | fcbad ebcfa edcgba dacbf
|
112335142543334473565677774456986769698869989679787999966877889796668798648474667745633463364123315
|
||||||
agfdbc adcbg fdgc cdfeagb bgd eadbc edfagb dg abcfg bfaecg | cdfg dg gbeacfd bdg
|
113555236654542657737447854474695576987788777767987976776779677896568655666568777374452626625515123
|
||||||
fdbag gafcbe agfdcb bfc cdgf bdagef cfbda bdeac bcfedag cf | bdeca adfegb cbfad cf
|
335535115334436455537766485588496998559679678997888767666867796988758985466776445675326242423551222
|
||||||
agfdce ecd cbeadg ce bdagc ecagfbd bcegd abce bfedg gcbfda | cde cdbgaef ceadfg eabc
|
113534446446435634464566878474597579966586699697988866966997787776788976778774466655756463456235323
|
||||||
cgbda bceag bcgfde gdb dcabf dg badefgc gdae adbcge cabgfe | adcgb egdbca dgbfaec gdb
|
432234422656545375357656547448457656589888789768979867898878979959955468888683644466555336562315155
|
||||||
baefc gecfb bfadc dabcge cdbfage aeb ea bgafce ebdgfc efag | bfgdaec gcdebfa dbecgf dagcbe
|
313344415452422533675445775845665999956589788887986877769867786689888565577764433373633363624515141
|
||||||
bgdcfe cafdg cad acegf fgcadb fdcbg faedbc da gbecfda dabg | acd faecg afcdg fdbgc
|
222432351346446453465663784584875977688789959977876966969658866777886544775874577535665532224311252
|
||||||
gedbcf gef cfaedbg egbc ge gfcaed dcbfea fgbad dgbfe fecbd | eg gfe gcbe bcge
|
225114233145352533344653757488874695566977756698769768695668575699668757584555454357642544414312222
|
||||||
fca cbfge faceg fbeadg gdefa ac adcfbeg ceda cdbgaf dgaefc | gfabcd afc degabf fac
|
033415322244643242337557674678486867575857998965787859688788778777887745544746656765646262354135222
|
||||||
dacfb edbag ce abdfgc dcfe ebcda gecfab befacgd feadbc aec | cea dabcegf cea badfcg
|
244444135424622245536477356767676647596876888859989597677576756885858547856577434533266366252341111
|
||||||
edabgcf eadcgf dbgecf dgeca dcbaf adcfg fgd gf faeg decbga | bfcdeg dgfca edcafbg dcafbeg
|
043422441154553466473376764757644888596669857975585975898957778585855575867574554436566563342243533
|
||||||
abegcf bedaf fc ebadgc cbf fbcagd baecg befac defgacb cgef | ecbaf fbcdage cf bfc
|
331142132342425642446677456357664865566895568659588999997598897847485545576757377726563624233332331
|
||||||
acg bafgdc afegb bfacd bgeacfd fgdc cg aecdbf gdaebc cbafg | afdcb cbfgda acg abdfc
|
023252542543632422666654576368776445864568889675685656595757555564576478356355573264462564525315531
|
||||||
ca ace afcb afebcg ecfbg dabeg gfacde gbace cfgabde cdbfge | acbf cfegb gebad bacf
|
401013153355343645357335364463874854866687865999886679877556446867474565563474773455256232432344241
|
||||||
dgfcba fabcd cgbfae dbaegcf eadcf dagbc edbcag gbfd fb bfc | ebagdc fb edfgabc gadcb
|
021145311524153334266573666344586785645787666877957988698886547444446737764473344255436645355133043
|
||||||
gdaec dfgb dcgbefa bde ebadg cbfage cabfed efagb db bdgafe | bd abegf dbe deb
|
343022114235145422524664767447348848745548778464684486768568675765556575337775543626443412212441440
|
||||||
caebfg bf bgead dgecab bdaf bgdafe fbe dfgbeac bfged fgedc | cbgeda efdbg edacgbf feb
|
111402455441135334663624565477563468586767564584754776865658486876757446535673333342623334312243002
|
||||||
begca fbaedgc adbfgc adbecg bcaefg af afb cdbfe feag beafc | fadgcbe af bgdfcea af
|
300312451335434322222245676775746358685854756547745674447587647487533473336654232544332431554454412
|
||||||
dceab be gcbdaf ebc abfe bdfac cdbafe cagdfbe gbfced dgcae | acfgbed eb afbe eabf
|
433111155454541556355524273356653577688858857767884847858548544877576457444762553325524214215402141
|
||||||
fegdbc acfdb afgce badecf badg ebgafdc gd cgadf gdf dcabfg | agcfd fbdac gfd egbafdc
|
131233333423335563265232427676636343767667757678865557657665545337553674363435662333422331253432142
|
||||||
beagd fbcg gbecfad gc bacge adbefc aecfb acgdfe gfbcea egc | gc efacbgd agdeb cfbg
|
424110224332255444554444426563344537343587775787775766858448446366677553432226234426335534235001312
|
||||||
adcebf fgebadc ga ega bdga edafb egadf bcgeaf dcefg afdbge | abdg dbag edcfg fbegadc
|
333412002215124441543424366273747763767633456777658554454464446357566564765333524264253113145112300
|
||||||
fe efd egfbdac dcagf cgaebd cbfe gdceb dfegc efagbd fdegcb | ef gdaceb befcgd gdcfbe
|
101110030515255434456252656567734365435643756543777575374763565634563366532624443621453215143234300
|
||||||
badf bfg dafgebc gdabe edfbg bgfeac bf bdagef dbaegc fecgd | gacfbe bdagef cgaebd adfb
|
303322412424455315323623364345353365376676743654344676735433644466637676342646445331232331222232310
|
||||||
efdabg bedac fb cgedab cefgdab fcdga adfcb cbfe dfb ecfabd | bfd bfec debafc acbfd
|
323112211415542144152522545435246756534467755554567676637543357465766366552324534423444455001240332
|
||||||
cbdag fa bdfacg dgfac defbag cbaf gecbda agf dbegafc fgcde | gdcef cdbag gaf gcfde
|
104010010231221552145233456226456635564775656444567465773637433733444632663325561451234351230241312
|
||||||
cfagd fbagcde cb efdabc dgaefb cfbe adgbec bdc acfbd edfba | befc cfbe efbc bcd
|
121411232340543435321316435636242655564355535365574763633547465475523553325562122152444444042300041
|
||||||
bdcgfe acdbeg ac caed gdfba dagbc abc gbfcea ecbdg gbcdaef | aced dgbce cab gafdb
|
131012210332331125512334254246234345354543573744464635755354544666345534262435114123351541032131413
|
||||||
bgfd fecdgab eadcf acbged gd acfgdb cafegb cdgfa cgd cfgba | fdgb gecadb gd gdc
|
320204021134412321515435566234224352423426577577364457356445435455454244243342521425351312003010221
|
||||||
dbcfa gcebda becg dgeac dbe egadcf gdefab fgaecbd eb acdeb | bed cgbe ebd efbgdca
|
323114214132034241313542544555435465334424654666346364554655422236635456436354122354410044244241323
|
||||||
ebfd cgfdea fbdagec afbce bfdeac geacb fb dfabgc fbc dacef | fcb abcdef cfb fb
|
013302120424301452153353441245652435266525344656664634425626224355262362255351231351513443132401213
|
||||||
gceab bgef gbdca abdecf efacg ecbagf ebc cgdeaf eb gdfbcea | ebc fdcbgea eb fcedbag
|
320030122021334215313244242334523262333453263233364243362363226452453421344311524253311414201210001
|
||||||
cdfeg de edg dbcgaf defbcg cbfgd gfcdabe bdef gdebca efagc | bfacegd fdceagb fbed gcebfad
|
232000301112410134252124412414346224626463252363536262245565624425334453135542241232142142113023001
|
||||||
fecbdg fcagebd adbgfc ceba gecad dgfea egdcba dac gcedb ca | cdabgf edfacgb acbgde febacdg
|
023101113421202000305251552134255163452646652324334242436543224522235515444445314014323100240020120
|
||||||
gefacd febcga fdg gcfdb ebcgf cgdba gdcefb fd bfedgac bedf | bdagfce gfd bfdcge geacdfb
|
320223110031202012323335553432231212252653563665545464422324656333443431535442453303001103202231020
|
||||||
bacgfd ec cgbafe adbgfec acfbe fbeda eac ecgdba acbfg fceg | dcgaeb fcdgabe aec afdbe
|
102033222010100142203435155413125314311166645446465322244546532441244154143433143443342400201012012
|
||||||
egcd dfeca efagd fdcgae egf ecbdagf eabdfc fecabg dfagb ge | feacd eg gcde feg
|
103310002120123402241302221241151441435355114335344522434421453552354154135223134443030043002000021
|
||||||
begaf dcfegb dbcge gadcbef fc cdabfe fgdc decbga cfb becgf | bfc fc cdebg cgfd
|
112323110033212002113322411233332355223342424233213123445224135331545115152043042400020200022133330
|
||||||
cfbdgea fdg efbdc fgdecb gd gbeaf agdfcb cedg adfebc gfdbe | cfdbe afgcdb dfcebga dgec
|
022111301200101044211214231433231311322554214331413543414521424255241531111410022413003020200231110
|
||||||
fdebgc egba dcaebfg abfgcd ba bda gdceb cefda degcba edcba | dba bdafegc decba bad
|
012022111212202121003233141343155411314255551134343533133453252153433344441013011221420230021203220
|
||||||
cgeb bdgcfa dfgcb efcdg ge abfged efdac eabdcfg ecdfgb gef | cedfg eg fcade eg
|
221101122202110034040022441212441254112211113355531534335143125434435312222200311411322330203331100
|
||||||
eabdcg gceb ec ecfadg baecd daebcgf afdeb badgc bafdcg ace | bcdgeaf ec cebadfg ce
|
210122210200133032213341213111433213432513121525124133544144433541201142230241123430213303001122221
|
||||||
ebdf cagfeb efcda ecbdag ecdbfa aebdc cgdfa eaf caefgbd ef | eaf dcbea acgdbe dfcbega
|
|
||||||
gdbfa gfaeb cafbgd adb cedbgaf faecdg edfbca bd dcgb gcadf | db bcdg dgfba dbgc
|
|
||||||
fbcdga cea gbcaef decgb gcdfa eafd afcdge adgec ea dbceagf | eac egbcdfa ae dfea
|
|
||||||
beagcd egcbd gbae eagcdf gdcefb cbade fabgdce ae fbcda ace | bage cae ace ageb
|
|
||||||
bacgf bdgac dcebfg eacgbd fdgbcea gfdbea dc aced bdc dbega | bcd cd bagde bafcg
|
|
||||||
gfabdc be gcedba fecabgd edcaf egbf fcabg cgbaef abcef bea | acegdfb fdbcga eb becaf
|
|
||||||
dgfbec bdecga dfgca fd aedcgfb adgec adef fcd fgcab fcegda | cbfgeda cdf df fdae
|
|
||||||
cgfbe faceg bacegf dfgbe aefcdg abdcef cb gdbefac bfc gbca | cdgefab bc cbfead cgaefd
|
|
||||||
gefdcab ebcg fcb bfdce afedb fedgc bedfcg dcafgb degfca cb | bc bc dbfecga cb
|
|
||||||
efagc cagfde fb bfe begfa gbead badcgfe bgfeac fbca fdgbec | eacfbg efb feb bf
|
|
||||||
gebdca af afb afbed bcafgd fabgde fbedc afge dgbae eacdbfg | agdfebc af abegcdf baf
|
|
||||||
egbad cfedbg gb dbg cfdaeg bdeaf dgabefc cdbega cgdea cabg | efdab fedab gb gcba
|
|
||||||
adfcb defca cabg gdefab afbdg bdgfec gbcedaf dbc gdacbf bc | dfeac bdc cbd gabc
|
|
||||||
db ebcda ebgfac fcdea becga ebgadcf bdc cfedbg agdb bdgeca | fecda bd agbd db
|
|
||||||
bagcef begdafc fbga fceab afcged ecagf deacgb acb ba bcefd | cfbedga abc deabgfc bca
|
|
||||||
cbf gdbcae abdgc fb dagbcf gabf cdfea cabdf dabegfc fbgcde | cbf fb dgabce fbc
|
|
||||||
dfbgec fcbeg fbeag afdecb fcdbga cegd dfbcg efc ce adebgcf | egdc acegbdf agfbcd cbgfe
|
|
||||||
abgce gdec ce faebg agcbd bfcadg acefdbg defcab egcdab cea | gdfabc ce agefdbc ec
|
|
||||||
acedg gbc geab ebdfc bg cbedg dacebg gdcaef fabgecd dagbcf | cgb bg adecg acged
|
|
||||||
cfebad fbgda edg ceag agebd aedgcfb eg ecbfdg cgabde cebda | cbafegd gdacebf cega eg
|
|
||||||
eacdf ea eadb cfgde cabfde bdfgac gacebf afe fbcda gcbafde | bagcfe fae adfcbg cadbf
|
|
||||||
abd fgcaebd dbfgc gdeac fbedag ceba bcgad deacgb ab adcfge | dba bcea ab cfagbed
|
|
||||||
afg bgfce af dcfa acbdge bacfg agbfde dgcfab dgbac defagcb | dfgcab cfgbad afg dceagb
|
|
||||||
gdacbf ebgacf edbagc ae agcbf aefg acfbe fgbcead bcefd cea | eca adgfcb eca eafg
|
|
||||||
fcbae bea bcdaf cadfbg fbgec ae eafd dacfeb bagcdef cbagde | fecbg cgedbaf gdcfba bae
|
|
||||||
baefg daebgc bdgeacf gaecb efb feca abfecg fadgb edcbgf fe | bfgdeca gcbea acedgbf ef
|
|
||||||
cd fdaecbg cdbga befacg fbdag decb dca gfcead dacebg gebac | edbc feabcg gcefdba adc
|
|
||||||
agdebf daeg eadbfc gef dgbfec eg dbeaf afgeb fedbcga gcbfa | eg eg edgfbc efabd
|
|
||||||
facd cabfgd fab geadbfc af gcbad egcdab becfg beafgd acfbg | fa acdfbge gdcaebf dbacg
|
|
||||||
bcgfda gbeaf cfgba fae bace cfabge cfdgae gedbf ea dgcfbae | ae ea fcagb eafdcbg
|
|
||||||
dbe gdcb ecafd edcgfba acedb gebdfa bagdce fegcba bd gbace | bd feacbdg bd gedbfa
|
|
||||||
cabgde fagecb efb adfbg acebdf fecd afbdcge cdbae bedfa fe | cfabge fe dfabg bfdea
|
|
||||||
bacg dafcg cdgfaeb fbcgda baefdg gda dabcef gfced cfadb ag | bgac dcfge egcbdfa dabfcge
|
|
||||||
bdc gdac ecdagbf geacfb defcbg fabde cafbg bcfad cd cadbgf | acbdgfe fegcabd dafbc dcgbefa
|
|
||||||
cedbf ebdgcf degc dcfgbae aebfg dfg bedgf gd aebcfd dbgfca | dbfcage cdebf dg dg
|
|
||||||
edcfb ad cgad adgbfc agcfb agfebc bdacf cafgedb daf dgaebf | afcdgeb fda fda bfagecd
|
|
||||||
agcbfde gadbcf bdfcge defgc dc afdge dcg gabfec ecbd bfgec | gcedf bcfeadg cdeb eafdg
|
|
||||||
afdebg efa afbdc ecag egcfd debgcf ea fgebadc fdeagc defca | aef afdbceg ea dgeafc
|
|
||||||
cgdfb fg ecdbf fbeacd bgdaef bcadg ecfgdab dgbfce gfec gfd | gf gf gfce febdc
|
|
||||||
bgcde fedgc cgf gabcfd gdbefc defga fcbe cdabegf fc acbdge | bcfe efbc fc efdcgb
|
|
||||||
cagb ab gdaecf cgeabd edabg fcdabe edbfcga bfedg cgdea eab | gadce gdefb abgc fedcba
|
|
||||||
ecdafg feg bcgfad egbfa afbgc ecgfdab gaefcb eg afdeb becg | ge bgfdca eg fegadc
|
|
||||||
fe adefg egdac cbagdef dcfeag adecfb dbfag edbgca gfce efd | fe efgc cabegd fe
|
|
||||||
geab fgbaec gce adefc gcafdb agcef abgcf cdgebaf gcedbf ge | gabe cfega fbdceg eg
|
|
||||||
eac dgefca cfgdba gdfeabc eadf gcfbe adfcg gcfae gacbed ae | agcdfeb ecbfg gedabc ae
|
|
||||||
ec cdagb cegdab dagbcf cbaed ebgc ecd abedf fadcge cebdafg | ecd gacfdb becg ec
|
|
||||||
abfge ce cgfdae cbed fecab fbdca egfacbd efc acgdbf cebdaf | dgface efc ec ec
|
|
||||||
gbc gcdbf gb eabdfc egfb agdcf egbcda gcdfeab dgefcb fcedb | bgef gecbfd gb bgfdce
|
|
||||||
ecgab gecabf cb gfbc abc afgeb daecg fcedab fcagbde efdbag | bdecagf gbfea ebgcaf cb
|
|
||||||
ecdgb ab adgb dbecga fgbcde cadgfbe aeb eacgbf cabed eacdf | abdg cbedg gdabce cdbeg
|
|
||||||
bgc dgeb bg fcbge befcgd ebcdfa cbfgda efcag cebfd fagbcde | gdeb fcgadeb bfecd cdagbef
|
|
||||||
edbcfga cedbga bagfd eabc dgbfce eb gceadf egb agdec gbade | cfgead gefdcab bdcgae cbae
|
|
||||||
bafcge edfg abegd deabcfg dfbagc abcde dg bdg gbdaef febga | bdg fdeg dg cafbdg
|
|
||||||
cgfdba gec gdeafbc cfgead ce fbegd cdae facdg afcbeg edfcg | cbgfea cfgadeb gdabfce egcdaf
|
|
||||||
cbfgad bceagd dbf cdbfae ebdcf cdegfab cbaed gcedf bf aefb | aefb dcfbage bedfcga fb
|
|
||||||
cgd bcdafe dacbegf adecb dbfeg bacg gedbc gc fcegad agbdce | cdg fbdge ecdgb eadgfbc
|
|
||||||
gfdabe cfbga ceab eaf gefcab gcaef ea efcdg dgafcb abfdegc | ea cafbdeg fgcab acgfe
|
|
||||||
dfg gdfbe gf ceagdf aefdb fcbg begdc cgbdef cabged becgafd | fdbgce eadbf cgedb fbcg
|
|
||||||
fdeba ecdfa badgef ebagf abegdc dgfb bd febgca agfedbc abd | bd bfega bedgca cbaegf
|
|
||||||
bafcdg cegb acfbg feagd fdacbge be bfegac abe bdcaef afebg | be bfecdga defcgba be
|
|
||||||
bafgdc dbfag gfecdb cbf cf bfadge acgfb cgfdbae bgeca cadf | cf bfgcde gdaefbc cfb
|
|
||||||
gcdbaf cgbedaf ad ebfagc daef dbafec caedb bgcde bfeca abd | ebdagcf dfea fcaedb cbfgad
|
|
||||||
ceagfd eadfb fdeag dcgfe gea ag dagcbe fcegbd fbdaceg fcga | gfca fcga dcgefb gfcaebd
|
|
||||||
cdfbge dcafe df fcd badce gdaf agcfe ecagbdf eafbcg fgcdea | gdfa fcd eabfcg fd
|
|
||||||
ad bgdfae eagfd fedcg dagb gdeabcf dea bgcefa abgef fdbaec | afbge eacfbdg bgecfa fabge
|
|
||||||
adfbceg edcgf gcabd egfcbd ecbf cebgd cefdga be deb fedgab | fecgd gcdef ecfdbga daecfg
|
|
||||||
gdfeac afedc agdbcfe ae begcfa edfbc bfcgda dgea efa cafdg | abdcfge edag edfbc cfdga
|
|
||||||
cbdeg geafbc fd gfacdb fgdce fecgad feda dfg aedbcfg gcafe | fdecg fade fade cadefbg
|
|
||||||
af bcfeg gbcfda cgabfe ecgfa abef cgdae beagdfc gaf gebcfd | gdfecb afegbdc gfa gaf
|
|
||||||
bgafcd becfag cbdeag bagdc eb bdegc adbe cdfebag gbe egfcd | edbgac adgbc bge cefgba
|
|
||||||
dfcebg cgdaef ga fcbgd dgabfc debaf acgb agfbd defbacg gad | bagc bdeaf bfgdc abcg
|
|
||||||
ebgfac agfdceb cdbga dafc cfabg dc gebda dcfbeg dbc gafcbd | gfbdca fdac gdfabec bagfcde
|
|
||||||
egbac efabgc efagcdb abedg ead da dbac bedcga cegdaf gdfeb | dabcfeg gcfeda adbc ade
|
|
||||||
acgbfe eafdg dbea bfgea dgbcaf cedbagf dfgabe cdgfe gda da | gfebdac agd dgaef dga
|
|
||||||
edbgf ced bcdeaf cdgeaf bcfgade fbcad eabc cdgfba ec febdc | dcbef faedgc edc begfd
|
|
||||||
ca bedcaf cbaedgf edabf cab dfbca bdfgc cfea daegcb gbafde | ac cdfabe bcgdf gdfceab
|
|
||||||
bdef gecbfd gbdcf cbaegf cgbda dfc gdefacb fcaegd fd gebcf | cfd dcf df fegdcab
|
|
||||||
bf adfgce dcbea cfb gfdaceb cedfbg cfedb fcedg acdgbf gefb | fb bgfe gebf dacbegf
|
|
||||||
defc edfba eadbg feb fbagcde ef dafcb gbfdca egcfab aecfdb | ecdf ef fcbgae fced
|
|
||||||
acdbe aegb cdabfge ebdcg fcabd ea gebdca bfcgde gcefda aed | ea ebcgd dbcegfa dea
|
|
||||||
dbcfe bfcda cabfedg aefc cdfabg bgedc ebdfac edf fe efdbga | efca face fe cefa
|
|
||||||
egdab bgfd gdeabcf eadbc abg bg bacefg fgade cadgef afbgde | bfcaegd dbafge abedg geabd
|
|
||||||
ebc egbfdc degc ebcagf gbcfd acbdfg ec fcdeb abdcgef abfde | egdc gcdfb bcgdf ce
|
|
||||||
dbfaecg bd bcegdf cfabg dcba abfdg fbeagc fdb cbdfga efgad | bgaefc efadg gbcafe bfd
|
|
||||||
gacef dcaegb egadc efcbadg eaf caefdg defc fe afgebd agcbf | cedag dfce cedfgba aef
|
|
||||||
gafcbed gdcef bcefad daecf adc daefb cbaf egacdb bgadef ac | dbceafg ebfcad bdacfe dca
|
|
||||||
ecbfa fae afgbc cdeafg dcfeb efgcab ae beag gbadecf acfbdg | bagfdc ae feabc edcgfa
|
|
||||||
egfac gebaf ac cfab gca gcdef cagedb bfecag fagdbe gacfebd | gcbaedf geacbdf gafcebd cgefba
|
|
||||||
fbdgec efbcag acbedgf bac befcg adfbec fgca ca bagce gebad | egcbf ca cfgabde abc
|
|
||||||
edafg cabe fcaed ce faegdcb dcefgb fec fdagcb cbdaf cbfaed | acbdef cef ce eacbfdg
|
|
||||||
efbcgd ebdgc egacf gebadc gba dabe fagcbde gbcae ab gfcbad | aebd aedb bead cdbfgae
|
|
||||||
becag cbdf cebda fgdbea bdgafce ecfda abd adefcb acgdef bd | adbfegc eadgbfc dcegafb bfdc
|
|
||||||
gfcadb fega acbeg fgcab ebcda ebcdfg ge ebcfga gabfdec ebg | beg fgedbac eagf eagdfcb
|
|
||||||
gecf cbf cbfga egfbac cbgaefd dgcbae fc aebcg befdca bfadg | cbf bgfca fbc fcb
|
|
||||||
cedfg adbgef cb bcd cgebd dageb cbegad ceab bgfaecd cabfdg | gbced bc dgefc bc
|
|
||||||
egba bdcfg fbe acegf ebcfg eacbfg eb fdebac dgeacf dcgbaef | efgacd bef ebcgf fbe
|
|
||||||
agfcbd bafcedg dce bgdfce efbac dgfe begdca de gdfcb dbefc | ced ebgcafd ed bgdaec
|
|
||||||
decfa cgbdae bdfce dgcbe bdfg bgdefc fbe bf bfgcae ebcgdaf | fb gabcef efcdb gdcebf
|
|
||||||
fbecga efcbg bafgd ac dcgeab eacf bafcg gfdbace gbcefd acb | bfecga efgbdac fbegc faec
|
|
||||||
ab ecbagdf fbagec cfedb eagbdc acb agdb ecgda acedb gacfde | acdbfeg dgab abc dgbfcea
|
|
||||||
gfdbc begdcf bfedg acgfed cd fcd febgda cfgab cadbgef ebdc | ebcd gdefab ebdc ebafdcg
|
|
5
inputs/08a.txt
Normal file
5
inputs/08a.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
30373
|
||||||
|
25512
|
||||||
|
65332
|
||||||
|
33549
|
||||||
|
35390
|
159
src/08.cs
Normal file
159
src/08.cs
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
namespace aoc2022;
|
||||||
|
|
||||||
|
internal class Day08 : Day
|
||||||
|
{
|
||||||
|
private int[][]? trees;
|
||||||
|
|
||||||
|
internal override void Parse()
|
||||||
|
{
|
||||||
|
var lines = new List<string>(Util.ReadAllLines("08"));
|
||||||
|
trees = new int[lines.Count][];
|
||||||
|
for (int i = 0; i < lines.Count; i++)
|
||||||
|
{
|
||||||
|
var line = lines[i];
|
||||||
|
trees[i] = new int[line.Length];
|
||||||
|
var row = trees[i];
|
||||||
|
for (int j = 0; j < line.Length; j++)
|
||||||
|
{
|
||||||
|
var ch = line[j];
|
||||||
|
row[j] = ch - '0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override string Part1()
|
||||||
|
{
|
||||||
|
int total = 0;
|
||||||
|
for (int row = 0; row < trees!.Length; row++)
|
||||||
|
{
|
||||||
|
for (int col = 0; col < trees[row].Length; col++)
|
||||||
|
{
|
||||||
|
if (row == 0 || row == trees.Length - 1 || col == 0 || col == trees[row].Length - 1)
|
||||||
|
{
|
||||||
|
total++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// from left
|
||||||
|
bool blocked = false;
|
||||||
|
for (int checkCol = 0; !blocked && checkCol < col; checkCol++)
|
||||||
|
{
|
||||||
|
if (trees[row][checkCol] >= trees[row][col])
|
||||||
|
{
|
||||||
|
blocked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!blocked)
|
||||||
|
{
|
||||||
|
total++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// from right
|
||||||
|
blocked = false;
|
||||||
|
for (int checkCol = trees[row].Length - 1; !blocked && checkCol > col; checkCol--)
|
||||||
|
{
|
||||||
|
if (trees[row][checkCol] >= trees[row][col])
|
||||||
|
{
|
||||||
|
blocked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!blocked)
|
||||||
|
{
|
||||||
|
total++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// from top
|
||||||
|
blocked = false;
|
||||||
|
for (int checkRow = 0; !blocked && checkRow < row; checkRow++)
|
||||||
|
{
|
||||||
|
if (trees[checkRow][col] >= trees[row][col])
|
||||||
|
{
|
||||||
|
blocked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!blocked)
|
||||||
|
{
|
||||||
|
total++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// from bottom
|
||||||
|
blocked = false;
|
||||||
|
for (int checkRow = trees[row].Length - 1; !blocked && checkRow > row; checkRow--)
|
||||||
|
{
|
||||||
|
if (trees[checkRow][col] >= trees[row][col])
|
||||||
|
{
|
||||||
|
blocked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!blocked)
|
||||||
|
{
|
||||||
|
total++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $"Total trees visible: <+white>{total}";
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override string Part2()
|
||||||
|
{
|
||||||
|
int highestScore = 0;
|
||||||
|
for (int row = 1; row < trees!.Length - 1; row++)
|
||||||
|
{
|
||||||
|
for (int col = 1; col < trees[row].Length - 1; col++)
|
||||||
|
{
|
||||||
|
int[] scores = new int[4];
|
||||||
|
// to left
|
||||||
|
for (int checkCol = col - 1; checkCol >= 0; checkCol--)
|
||||||
|
{
|
||||||
|
scores[0]++;
|
||||||
|
if (trees[row][checkCol] >= trees[row][col])
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// to right
|
||||||
|
for (int checkCol = col + 1; checkCol < trees[row].Length; checkCol++)
|
||||||
|
{
|
||||||
|
scores[1]++;
|
||||||
|
if (trees[row][checkCol] >= trees[row][col])
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// to top
|
||||||
|
for (int checkRow = row - 1; checkRow >= 0; checkRow--)
|
||||||
|
{
|
||||||
|
scores[2]++;
|
||||||
|
if (trees[checkRow][col] >= trees[row][col])
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// to bottom
|
||||||
|
for (int checkRow = row + 1; checkRow < trees.Length; checkRow++)
|
||||||
|
{
|
||||||
|
scores[3]++;
|
||||||
|
if (trees[checkRow][col] >= trees[row][col])
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var finalScore = scores[0] * scores[1] * scores[2] * scores[3];
|
||||||
|
if (finalScore > highestScore)
|
||||||
|
{
|
||||||
|
highestScore = finalScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $"Best scenic score: <+white>{highestScore}";
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user