this repo has no description

ft: add day 7 and 8

Changed files
+536 -53
2021
+1
2021/day7.txt
···
+
1101,1,29,67,1102,0,1,65,1008,65,35,66,1005,66,28,1,67,65,20,4,0,1001,65,1,65,1106,0,8,99,35,67,101,99,105,32,110,39,101,115,116,32,112,97,115,32,117,110,101,32,105,110,116,99,111,100,101,32,112,114,111,103,114,97,109,10,616,0,1633,1048,833,967,161,22,823,601,603,538,340,798,1053,400,54,41,54,296,1336,1013,9,763,650,313,15,177,1289,307,741,314,289,63,183,503,764,187,225,596,273,387,1,1165,61,19,78,514,355,605,103,483,291,1781,1137,398,593,38,444,204,274,528,147,131,1021,812,430,710,257,1408,1587,517,773,218,99,357,301,543,1668,11,311,350,373,145,507,325,1006,696,607,281,433,302,148,519,846,1528,766,158,51,850,216,1320,690,338,298,631,560,306,5,888,242,1230,1694,1330,570,184,946,97,96,272,537,312,1246,847,138,325,28,253,785,483,906,412,28,178,485,828,823,1035,1001,108,1068,90,308,223,18,191,1269,39,238,307,7,643,1546,203,254,371,402,207,666,786,793,361,441,105,15,421,1748,255,152,1376,626,296,707,4,627,885,49,316,34,379,1591,39,1087,135,1515,69,725,419,924,414,78,1169,8,1331,2,771,1295,570,323,9,406,75,42,1003,180,188,174,145,128,625,1312,85,427,56,15,87,449,831,906,34,186,609,1597,531,104,1034,615,608,1338,192,280,982,334,853,1155,194,124,205,1384,135,906,239,761,1357,16,328,623,3,1432,634,1698,31,981,347,75,222,896,77,1204,1272,711,106,772,1366,279,162,98,487,1281,188,71,307,398,470,40,12,459,449,984,1271,260,1132,493,1117,129,36,1040,947,570,89,853,373,102,771,107,266,106,59,485,61,87,353,164,278,1489,542,442,4,62,788,63,130,723,919,1169,327,459,431,1107,992,1162,1287,901,838,638,261,307,761,533,119,336,4,422,173,172,64,222,531,998,1250,1007,20,1231,69,289,531,757,185,519,184,1139,369,2,1102,857,339,1267,1357,217,774,1352,23,136,2,1389,253,87,883,28,247,292,15,332,69,170,20,544,75,850,310,1137,301,155,265,100,842,189,7,584,40,168,22,548,7,30,1027,744,1294,329,100,1255,424,515,460,163,375,26,618,275,1012,935,160,181,84,186,990,1208,152,753,508,590,578,81,625,600,430,306,311,156,5,56,187,25,249,1090,316,224,173,199,71,221,1219,335,87,260,607,121,25,1326,473,224,92,87,734,179,64,325,320,117,302,1247,879,716,984,284,239,738,30,90,61,844,997,823,387,956,842,580,540,648,1947,32,63,380,873,1086,142,512,206,742,584,157,858,1300,992,311,139,906,693,1,36,1320,236,48,58,32,147,34,229,497,1,657,616,309,494,1419,264,595,729,1374,984,74,446,436,77,1516,156,915,565,159,269,263,442,775,12,6,337,115,971,598,87,1283,533,991,204,1382,1204,277,27,801,260,198,426,89,72,458,1164,571,1329,501,1547,125,376,865,642,268,626,167,429,901,623,103,100,1064,125,450,695,28,1470,469,187,119,1363,44,485,1243,1163,507,139,147,72,100,160,624,506,1360,66,444,581,729,531,701,1091,178,476,22,926,354,88,1076,946,213,38,43,125,291,714,113,54,1214,1067,641,374,411,64,1364,415,133,752,372,212,19,1941,780,902,512,852,157,8,175,90,913,125,771,764,381,947,572,391,313,249,201,106,1500,487,107,868,464,984,1471,550,642,196,571,18,306,293,659,1274,290,352,0,528,754,564,316,685,57,293,75,584,251,1107,217,11,21,329,493,175,600,259,380,30,148,556,136,180,12,26,507,199,3,0,143,87,1452,359,989,170,64,269,17,1018,105,317,289,127,275,269,359,511,690,205,423,356,19,177,260,789,51,119,210,1151,707,869,194,773,159,216,759,16,161,47,1254,293,54,504,432,1230,213,26,253,424,98,1515,162,346,326,12,122,79,210,912,55,705,597,369,1381,284,1163,316,34,384,36,1254,1455,994,60,1395,476,100,38,726,198,605,103,489,361,9,24,158,1056,264,1103,175,1423,266,45,93,271,331,673,788,48,12,580,697,593,480,268,559,302,87,281,6,401,170,90,939,543,223,137,809,139,182,571,68,1112,20,1004,1090,249,1435,267,10,375,504,906,946,1503,1362,184,233,112,1058,16,235,548,563,162,102,746,439,105,259,27,19,817,1444,119,175,341,130,202,31,432,480,710,1127,682,454,134,823,168,276,113,914,1112,118,10,1041,902,141,1428,282,485,353,589,906,987,488,144,154,25,930,368,261,176,168,85,814,1915,248,49,1012,3,143,951,30,411,336,46,1383,26,857,1650,192,1477,194,73,154,91,287,229,144,675,989,135,360,74,60,223,219,625,182,793
+200
2021/day8.txt
···
+
fdgcea dgefa efabdg fdgcba dab baefc begd ebdfa db bafgdce | gfbcda cgfadb badcefg eacfgd
+
eagfdb bafdec fdg edgca gf cdbafeg egfcdb bgaf aedfg defba | gfd edagcbf cdfebg gfedab
+
faecdgb edgf decag cgf agdcbf aefcb gf dgebca fdaceg cefga | fcg fcbae fg aecgd
+
abcgdfe gebfd eacbdf gc gbc cabdfg dcfab gdcfb gacd acfegb | fabdc cg bdfeg gbc
+
bgcda cagdf geafdc fbcdge fedag fc egcabdf gfc gfedba acfe | cdegaf dbfgea adefbg afedcbg
+
degfbc cdeg dcfbae debfc gbadecf begfca egb eg dbfge adgfb | egfdbc ecgfbd dbcagef cafbed
+
gefacb cdg decgba badgfc edga eabcg dfacgeb dg efcbd dgbec | dg cgabe decfb dg
+
bafdeg facdgbe dgba gcafbe bd bde gdbfe cegfd agefb ebcfda | gbafec bfgea fgecab cefdba
+
bfcgea cadfb dfcg afbdcg cg ebgda bcgad acg edbcgaf ebfcda | acgfeb dgbca cegbfa cadbf
+
bfeadcg gdcea bcagfe becdaf fcgbe bcd bd cbfdeg fdgb dbegc | dcb acged edbcfa dbgecaf
+
bedafgc bagfce cadgf dbfcag dbca fbdga fgaced agb ab ebdfg | agb ba gdbaf fcbgea
+
abcgf agdec agbcfd cfd df aefcbg decfba gafcd fbgd dbafegc | fcbag cegad gdace cdf
+
cgb ecafdb bfdac cg cgfbd cbfega edbfg fbeagdc adcg dgcfba | gbfed fecagb fdbcga afcbd
+
agcb cfaebdg bc bfedcg dcb degcab beadc dgeca ebfad fdgcea | acbg abcg gcba bc
+
cgbf dafgce fadgbe bdecfg gdfbe cedab cg gce adfgcbe egdbc | cg cg ecfadg ecgdabf
+
cd fecagd fbgca cdebfg cgfdb gdebf cbed gdcbfea gdefba dfc | cfd edcb bfdage edcb
+
agbedc dcagbf af bcdaf bdagc gfbcae fgda bfa cbedf gcedabf | af gabecd dgfcaeb afb
+
dgebfa adg gbed debfa dg adfgecb fcgea acdbef cafbgd gfade | adgef gd cgfbdae dgfacb
+
fbc bcfgd fgdeba bdegacf bagfcd cbag afdgb bcdeaf fcgde cb | agfcdbe fcb cbf bc
+
cgabd bgafc fcaedb bda bgecfad bfceag bd dagec fdbg dafgbc | cdgbefa bfacge ebcfga gfcab
+
fba dabcge beacfg bdfc bagfd dcagb fgaed bf fbdagc dbcefag | gacbd dgeaf cfdb fab
+
cebgd ade cbda cgfea dfabeg eadcg agdbec bgdecf ad deacbgf | ecadgfb dabgef beagdf ecgbd
+
aedgc deafbc fgaedcb cdgfbe acfg edgfc ca cda dcgefa adbeg | acgf edcga cabgdfe gacf
+
bcagde eg bfcea abgcd gdfcbe bge dabgcf bfegcad gceba aedg | acdgfb fbdgec agbec dbcefg
+
ebacd decgb ebfac cbgdea adgb efabdcg bfdgec eda cfdaeg da | egdcb bgcdef da da
+
cfgebd afebd cb cebda dgcae afgdcbe dgafeb bfca ceb bdcefa | bec gaced afedb eadgc
+
bdcfea ge acfbg efagb bdaef badgefc gadbef eag gfde bdcgae | bcdaef bcefad efcadb gae
+
befagd fd cbefa dcbega egacfbd efabd edcafg dgbf gedba fed | fde abedf def aedfb
+
bcd abgcfde dbaf abecdg db dcbef abegcf efacb fabedc dgecf | ebcfd bfda dcb egcafbd
+
fdbea caefbd gcdafe ecafd efb cedb be geabdcf gfbad fcaegb | baefgc defcab eb cadef
+
dagec fadge dc cdg egacb adecfg bfgdeca fadegb dcabgf cdfe | fcde agcde efcd cgd
+
dceabg fbaedc aegfdcb fc cfa cefgad bfadg bdcfa cbef eadbc | fc dcabf cebf afdbc
+
defabcg febdg bdfega adfg fabcge edfba abedfc bdcge fg gfb | fgb fg fbdaec daefb
+
fd gfbaec cdf fgced eacfg gfdebca fgda bdfeac cegdb cfadge | dfc gcfedba dfecg agfd
+
ec bfeacg bdfca acdfe fagdbc eca febacdg ebcd eadgf cabedf | dfcae fecabgd eac aedfgcb
+
edg dfceb egdcafb gcef dbcga cdafeb cgebd gdfbec eg gfdabe | fcdbeg ge bfaecd ebfcd
+
ecg bcadfg egfac fgdca fgeab cfdage bceadg fced cgdebfa ce | egfba cfgae dcfe ec
+
cdeg ec eac efdac dgcaf bagfec dbfeacg aegdfc bfdgca dfabe | efbad egdc afcbdg ce
+
gbecda cbe egfcba abcdg agfcebd ecda bfedg adgcbf ce bdceg | ceagbd gdabc aced adec
+
ecbagfd egfbd gafe gcadb bdgae gfbdea gefcbd bea ae cfabde | gdacfeb abedg fbgdec cbedagf
+
bagfe fdeagc agfebd fbcea dfbca gcfbae cae bgce ec fgacbde | acdfeg ebagf ce efcgba
+
bf dagcebf fdegc ebcfda geadcb bfc acbfgd acbdg fbga fdcgb | acfbde dbacge cadgb gfab
+
cagbf bcde bdefag gcfde cdbefg deafgc bfd bdgfc bd dagbcef | fagdec becd dfb fgbca
+
dbc db dgacbe bgced abde cdafebg dgfeac ebcfg daceg dcfgab | dgcfae dcb daeb bd
+
bgdfca bag bacefd cbged acbgd faecbg fagd ga cgbafde fabdc | bfdagc acdgb bacdg dfga
+
eafbcdg ebcafg bdge dga eafdg eafdc efgab dg agdfbc fdaebg | bcedgfa fgbcda bcgadf edgfab
+
fc gbced efcgb fbage dbefac cgdaebf fcb fdebcg gacedb dcfg | gfcbade dafegbc adfgbce fbegc
+
ebc cgbfe be bfcdga acfbegd abge abcfg dgfec cfdeba acbfge | dcegf eb badgcfe gabe
+
decfbg cdbeag decgb fgebc cbf bf agefc fbdgcea becafd gfdb | dceagb dgbf bf fcb
+
gcbfad aedcg egadb ecgdaf dcfgbae dc cefga fcde adc fabcge | acd bacegf gcefda gdeca
+
cad fdcbega gedbc dbgfac efdgcb dbeagc eadfg ca daecg cbea | ca abce gfdea gbcfed
+
afdegbc efgbad fcdge cafg fg efadc geadfc gfd bcdeg cbedfa | gf fgbaed fgabcde cdfge
+
cefga fda gafced facgd degf fd efdgacb cebfag gbcad deabcf | gbecadf gfabec afd afgcde
+
bedcf adc cdegbf aecb gcbeadf ebacdf ac eagfd cdfea cgdbaf | adc cbfgdea dca abcgfd
+
dgab cfbdea gcadbef afdeg ebdfa fgdecb deafbg edg gd cgfae | ebdaf abdg gde cgeaf
+
dfbae cgadf abfdgce ge ged aegfd debcfg eagdcf geac dfbcga | deg aebdf gcafd egac
+
eagdb ecd afdc cd cfadgbe gfcdbe bfcgea efcdag adgce gceaf | fedcgb ecdga facd cd
+
adbgcf fabced gfc afeg dfaec gecdf fg gfcadbe bdecg acgfde | cgf gfc decagf cdfae
+
fgcda bfgcda bdecaf adc bcfag bdag beagcf ad fgcadeb dcfeg | dgfcba cad fcagd baecfd
+
dcfe cbagd gdfabe ed abdfec ceabd bde becgaf eadgcfb fabec | dfce eagdbf faebc gacefb
+
acefbgd abgfe cdgfbe abd fabdce dbfec da cgfdba edac dabfe | fbaeg eabcgdf eagfb afdbe
+
ecgdfa bdfge bafdg fadcbe bfa bcag ba cgdaf geafdcb agfcdb | fadcg fagecbd baf cfeagd
+
bcaegf dcfag def bedg gbaefd faged dfceab ed abgef fecbdga | ed dcagefb dgeabfc bdfeag
+
ecfgadb fcb fgeac fdeba cfbead cefab cdba ecfbgd bc bdgfae | bfc gaebdf cfb afedcb
+
fecbd efcgabd cfb cf dgbef abdce cbfgae faegbd fbcedg gfcd | febdg bdfegc gfcd defgb
+
aecdgfb gedfbc agbf cefadb acf adfcbg fa dgfbc egcda dafcg | agfb gaebcdf bgedcaf caf
+
gc dcbg eagcdb gce cfbgea faedg dceba abdcef acebdgf edagc | bdgfcea dbgc cbgfea bcaefd
+
gcadb fegadbc afb ecgbfa cdbf bcfagd efagd bfagd abgedc fb | bfcage dbfga gadbf bagdf
+
gadbefc abgdef gbcfde cef gbfae cdbaf ebfgca abcef ec ecag | fdbca acdbfeg ec ce
+
adbec cgabfd afcbge dfbgae efcbagd bgeca gc agc bagef gefc | gafcbde gca cga dgcbfa
+
fdcgba cedab debga cebg adbgef edabgfc bgcade cfade bc acb | gedcba cgbe cdgeab bc
+
cedagf gcebda gacf afedc aefgd ca cea gdafbe bdgfcea ebfcd | ac cagf fbaedg afedc
+
fa ecgbfa egabd gedafb dcabfeg gfa dgefa bdaf dcfeg agbedc | cgfbaed dbacgef aebgcf gfa
+
dgebaf cfbgd dfaecb ef gacefbd bdfce faec ceadb feb cedabg | bdefcag bgfcd ef cdebf
+
cgad afcbed fdgaceb bfgead egbadc cbedg gd bcade fcegb dgb | feadgbc gbedc bgeadc abdgef
+
dbefga cbfad ebdcf gdabefc bfe gcfde cgfeda be cgdefb bcge | cgbe eb cebg geabfd
+
fecda begacf bagfedc ga cag gfcdbe cebfg gabe fgbdca cgefa | efcbg gca eacfd dgcebf
+
faegcb cfdbe gdfca afecgd cgbdaf adbg gdbfc bfg gb gcdebfa | fbdgac cfdga cadegfb cgfbd
+
gdefac abecg dgebfca bf defb bgdeaf fgdea abf afegb cbgadf | fdgeab efbd fb abgce
+
gcaed bdfgeca eafcgd dfegcb fdgce cae befacd ea dagbc feag | ecbdfag gbdac gcbedf cgfebd
+
cge ce aedcg fagdbc dbgcef cbdaeg abec dfega egdbafc agdcb | dagfe ec adfeg ce
+
dbfeg ebgdca dgfcab fcae bdfeagc abf gbeca bacfeg af gafbe | afec bfa fgbed fab
+
gfc dcgae fdgeab abdfg bafc cegfbd cagfd fc fdgcab gbacedf | faedbg gfdba gfadb ebagdfc
+
dbcega cedba cdg bgfca gd bagcd dfgceb becfda adge cdbgfea | gcd abfcg ebdcfga dbgca
+
dbf gdafec aegbcdf db fbcdg afgdeb bfgce cdba abfdcg acdfg | egcabfd egcfb cdgfba fbd
+
gdbca acbfg efcgab eagdfbc edgabf dga eabcd gd bcagdf fgdc | gad dagcb dcfageb cgafb
+
cebfdg ecbg gdefb dgc cg gecdf egafdb fdcbeag abgcfd eadcf | dabgfec fbgacd badfgc abcdegf
+
gfb gfcbe egadfb bgcde bdfc cefdbg cfage bfgceda bacdeg bf | fb fb fbg gcebd
+
edcgfa abecgf dfagbc aef ea acbe fbgcead fdebg fbaeg gabfc | fae ceab fcageb ebfag
+
bedfcg fgcade caf aefbg dgac ac efdgc fecga fgbecda bfedac | gfbea acf egbfdc agcd
+
ecgda gab dfab bcgeaf fadegb ab gbfed dbgae dcebfag dcefgb | ebgfd dgbae gbfde gab
+
aebcdg cgfeabd degba fb dafegb fdcga fdgab gbf abef ebcfdg | eafb eadgbc fgb dgfac
+
gc cafbeg cdge abdfc fedbg cbg dbgefc edbfag gbcfd gefbdac | fceabg dcge cg gc
+
eag cafde debg fbedgca bcgadf egafcb gdaec gecbda cdagb ge | gcabed gbcda gedb bdcga
+
ea ceafgd bdae dcbage gae fgecb agecb abcdfg cgdba eabgcfd | cefgb dcbfag acgdef adgcfe
+
fbgacde dbfeag bdgcf gaf ga gdacef afcdg afecd aefdbc geac | afg fga gacfd fgaced
+
dfga acd dgfec acbged acfbe afdce bcdfeg da fagecbd decfga | cda aebgdc fagd caebgd
+
ebgf edacfg acfedgb aefcb fcg gf ebcafd abcdg cfabg fgecba | cdfgae dbgca deacfb gf
+
gacbfe abgef cbagf gecfdb fdbea agcdbf eg cgefdba egb agce | efdba eafgb dabfgec cgfadb
+
afbegd acdgb aeg cegdfa aebdf dbafec gbdafce eg bfge bgeda | afbced bdfagce dacgb bfeg
+
cag gc agcfde agecbf bceg acebfd agfbd efbac edgfbac gafcb | bfcag cgeb agc cgfabe
+
ecadgb abe fgeb gbaedf adbfe fdage dgcafe bfdca cfgbade be | ebfcgad aedfg cafdeg dcefga
+
eagfdbc fbcgea bgf afdbc bdgec faebcd fgcbd fg bgdcaf gdfa | dfbcae fdgcb efacbgd bdacegf
+
dfag cdfegb fa edfbac cfa egcba fdgcb bfgca bgcdafe dgcfab | fgbca cbfagd acgbfde fca
+
fb bdfg gfebc edbcg beadgc adfceb gcfea efb febcdg fdbecga | agcfe bf gbcef gdbec
+
ecfgabd ebfcg decbaf cgfab ecfbdg be bce gedb dcgef fdcgea | begfc acbgf gfcba eb
+
cg ebadgc dceba fegcba bcdfea acgdbfe cegd bcg abdgf dbagc | abcde cg gc gbc
+
bfc acegbf febacd ecdba cf dcfa dbcef dfgeb bgdcae bcfdega | fbcgea fbc fbecda fdca
+
agbfd gfeabc ad dfa adgc bagfc gfbacd gfdeb fegbadc fcdbae | fad dgca gdefb afbcg
+
bcgead ecagb fcagb gcbedaf dage ea bea afedbc cdgfeb cebdg | gbdec eba edfbca agfdcbe
+
abcg age eadcbf ga gdeafb ecfgd becda cegad efbcdga adcgbe | eabfdg fdceg cedga cgdae
+
fbd cbgd dgcfa cbdaf fbdage db gecafd bacef cdbagf fcdbgea | facbd bgdc db cbaef
+
fbdca fdcgeab gfbc gcbad gdc abged bafdgc gc gcdfea cdbeaf | adgcb fegacdb cafdeb geabd
+
bdafc cegbdf gd gbafec fgecb fdg aebfgdc dbgfc abfdge edcg | cdfbg dg edcg afdbc
+
gbaefd caefg dbgae fb ebafg cagdbe bcadfe fgdb ebf cedfgab | gedcba bf fgbd bdfeagc
+
da abcfdg gaecf bdaf bcdgea gecafdb cad cgbefd fgcdb cdgaf | dbcaeg bdaegfc dbfcage bafd
+
gecba aegcf aefcbd gecdbf af gdfa cfa fgaecd cbdfega dcgef | fa eadfbc cbega cfage
+
be agfedc fdega egcfadb fbeg eba cfdeab afegdb dbega dbgca | adgef gebf gdfbace gfeb
+
fg gfe bgfae gdfa dabcfe ebafdg fdcebg abdef gbeac bedfacg | gef adfg fg fge
+
ad fdgceb becdag gecfd afdge daecgf fbegdca afcd dae geabf | cadf dbagce ad dfac
+
fgaedbc dbfae ceda egbcf bacfdg efbdca fdeabg ca cfa cfabe | gdefbac abfed ac dfcaeb
+
fgbdca cdaefg bafge ac gca cgebfd bafdecg cadb gdbcf bfacg | egdcaf cgebdf gca agc
+
cg cdabfe bfaec bagfce gfdabc fcg efagc ebfgcda edfag cgbe | bgce cgf gfc gcadbf
+
caeg gaf gfcade cgfad bedgcfa fdcea ga bdgfc aefbdc gdefba | cfaed cefad fadgeb dgfca
+
fbgad gbf fcdabge cegfab gadbc gfead fb aedbfg befd adgcef | gabcd bf acgdb bf
+
gebaf bgeadf gcabedf edfca feadg dg gfdbca eagbcf gdbe gad | egdb ebfag dga ebfacg
+
dcgabe gcb adcfbg agfbe bc afgcd bfcga adfecg bcdf bfacged | dcgfa cb dgabfc cgb
+
ebafc debc efgdab fcb aefbd gaefcdb bc dcgfab abefcd afecg | agefc baecf ecbd bcf
+
gfbdc de badfcg dge befga gfebcd cdef egfdbca ebdgf bgedca | ecfd dfgcb edfcabg dcabgf
+
gaceb bad dfgabe dbfecg fdebg cebagdf gdbae adfg dbfeac da | eabdg dgfa afegdb agebfcd
+
dfabg gdfeb da gdcabf abgfc bcgafe fadc adbgec gda gcebdfa | gda ad afcgb efgbd
+
fdcaebg dbagfc edagb ca gacbd gcfa acedbf gefcbd cab cdbfg | cba geabd cbgda bac
+
dfegc agc ca bacfgde adfgce adceg fcad efbgdc geafbc daebg | gdaeb gbade gca gdace
+
bfedgac gedb abefg dacef gedbaf gadfbc db dab cgbefa afbde | edabf gfcbad dafcgeb bad
+
fcbgea gba decgba gfdace gdeac bgdac afcgedb bdge dafcb bg | begd gcbfdea bg daegc
+
egfab afc cdgba gfcbad cbgeda bgafc dfabec gfdc bacefgd fc | fc bceafd gabcd dfabcge
+
cf cdabge cegda fgec cbfade acf eagfcbd acgfd bfgad gcfaed | cefgdab cdaebg gedfcab facegd
+
ca ebdcf cda dfeac fdgeba agfebdc dbcagf dfage afecdg gaec | eacg adc efdgab dac
+
dc gfcdeab cgfaed facge gdeba dfcg dca bfaced gdaec aegcfb | fdcg fbecag egdafc efagbc
+
dbcfa fdaecb afg cafgbed cadfbg ga cadgfe cbga fbedg dbfag | bdegf gcaefd dagbf fdeacb
+
defbgc cfgeabd cefgd gdc eabfgc afedg afdgcb dc bcefg cdbe | gadbcfe ebfgc decfbg gfecdb
+
egad fedac dgfeca cdg efacdb dcbafg fgcbe gd dcfeg cebfdga | cgd dg gdc gadbcf
+
dfe gcde dgfbe fbecad gdbaf faebgc ed gfebcad ebfgdc bgfec | cdeg gdec ebfdgc ed
+
dgabefc cdbefa aedfb abdc becfd fagedc dcf cd bcgfe fbgead | fdc dfc bcad dc
+
acgbf ebgfad bgcad cdbge dfcebg dcaebg ecda da fbcgdea abd | facgb gacdb egcabfd dcbgef
+
acbe afgbcd adc bedcag ebgcd gdeac eacgbfd fedga ac gfbcde | dcbeg aceb gbdce fedga
+
gfabd gcedab eb ecgdbaf ecdb egdacf egb degca bdega bgfcae | be gfacedb cgdaefb ecbagd
+
fadgc dgfe eafdgc agfedbc gbdeca gcafe gd cbgeaf bdafc dgc | gecdabf dbecga efadcg dafecg
+
bgc aecfg fadceg bcgeaf fdagb afgcdbe febc bc fagcb egcabd | cfbe cbfag bdgfa cgeafb
+
fadecg cea dagcf cfed ce bdgae geacd eabdgfc afbcge dfcagb | adgce dacfg gcaefb ce
+
cb dcgb fbc abgfcd ebdgfa acdfbe efgca afdcbeg fbagd cfbga | cb bdfcea fcdagb dgcb
+
gadebc ag cabgd acbed dgbfc eafbcd bfadecg abcegf bga aegd | aegd bedacf gade egad
+
fdagc acegd aecdfb adfbeg abdce becdga egd agbdecf ge gceb | acdeg fdbaec ged gebc
+
ade afbceg aefcg gdac da dgfae gbdef acdgef bdefgca adbfec | bgcfae ad bdgefca dgfae
+
fdcage eafcg df fgecd bcafge cdf cgdafeb gbdce dbagfc fead | cegfa cgedb fd gaefc
+
ebdac cbaefd dbaeg gbafec cfed ecfab bfdegca dcb bfacdg dc | dcagfb caebd fcbade bdc
+
gdae eac ecdfgb afceg efdgc acefdg fbcag ae cfabedg abdefc | afdbcge eacfdbg cae dega
+
facgb eacbdg efdcab cg acefbgd bafcd efagb cfbdga gcdf bcg | dbafc eafbg gdbace bgc
+
cdb bd ecdfgb ecdbg dgcfe becga cbgadf fdgcea dbecgaf defb | bd bcgafd cbgafd gbdcfe
+
dgfebac dcb dagec cgbe afdbe dceba dgbaec dcgfba fedgac bc | gecb bc gbce bc
+
ecadbg eabgfd gfbc abgdcef dbcge bf dcebgf cdbfe fbd fdaec | cegfdab gdfeab fbd gfebdca
+
gcdefa edab ed ecd cdbfea dfecbga cebfa dcbef abfgce gcbdf | bfcdg agdfecb gcabfde acgefd
+
begacf bafce cfa fc beafd agbce cbgf gcdeba cfdaeg fcebagd | afecbg gabcfe fc cf
+
dbacfg ab adbf caegfb abc gcdeafb dfgeca dacgb gcafd cebdg | ab bacdg ab gdbcfea
+
dfga afcbd fbcag ceagdb fagcbd dac da gcaefbd fbdec ebfgac | dfecb bfcga da dcfeb
+
bdeca bcfdg feabgd bgfecd eacfdbg cdfbag fgce debgc ebg eg | ge adfgcb gdaecfb eabdgf
+
dfe aefcbgd dcgbe df dbfc gcdabe cedfbg gfbed abgfe efgadc | bfgced ecgbd egcdfa fd
+
adebgf dbcae af dbgeac gedbcfa cdgef efa cbaf dbcfea efcda | acfb ecgabfd fa fea
+
gd efgab egdf daegb bfgaedc edacb abcegf fcdbag gda agdebf | dag gbadfce gd bgdeafc
+
dgcfb bcgafde fdc cfbeg gdefac fd gfbaec dfebcg befd bgadc | fd ebfd fd defb
+
eafdg cdfgab bdac gfbda fdbgc abgfdec afb cbdgfe ab gefcba | efabcg abdc gcfdb afdge
+
feadcb gdcbfa dbafc gfbdcae fedga aceb cgbefd faced ec cde | efdca cdaef ecbgfad fdcbag
+
gade feagb dgefb fga bdfecg dgbacf ebfgda ga cbeaf bfeadgc | ebgfd cagdfb gfbdeac ag
+
ebgdacf acdgb dfg dgacf cgefbd acgfed bgcafe fd cfega feda | cgeaf fcdega cadfeg dfgabce
+
dcea egcfba de gecabdf degbfa fcbgd egd begca degabc bdgce | bgdeaf deg aedc edca
+
fdagec dbfa acf af afbecdg edbgcf fgbcd bafgc bdagcf baceg | af acf bdfceg edbcfg
+
gfeac bgfaec gdaebfc cb aefgdc beadf ceb acdbeg bcefa gfcb | cfebgad egcdba ebcfa bdgeac
+
cfdbg dfbega agfbdc cdfa dagcbe dc dbfag dcaefbg begfc cdg | cd aegcbfd fbadg fdacebg
+
fbagdec gbadfc egb ecgfba egfab gebdac fgec fbdae cgabf ge | abedf caegfbd afgcb beafcdg
+
bgeadcf acdgb gfadbe fgcab efbcda dg bgdaec ebacd dgb cged | dg dbg gd gd
+
dcbeg gab bafegcd cgdba acgefb bgafcd acfgd dfba ba eafgcd | dgcefa abg adfb gba
+
fb acfgd fabedc acfbd debca gdcbae efbdgca afeb gdfebc bcf | dgafc agfcd fb fb
+
cedgfb egdca gcabde ac dbecg cfbead bcedgaf gfdea cda agbc | ac gceda gbca agbc
+
ceda cebagdf ec fagde cbfged fcedga gaecf ecg dbgefa cabgf | dace dacgef gec gfcedba
+
ge egab febad fgaed fdgaeb afgdc fcgedb ged gadefbc bfedac | ge acegbfd egab ageb
+
dgebfca fcd gbcfa cfadb cdfbeg fegcab adfbe bcfdga dc agdc | fcd ebfad gfcbda fcd
+
cbgafd fgea bfedga dfa fgedbc bfdae efbdacg af febgd bdcea | dafbe dgbcfe efga af
+
edcfba agfbd agcdfbe abg ga ecabfg aedbf aegd gdbcf fdaebg | faedb bag edfab fcdgb
+
bed fecadg dabcge cadeg cgbd afcbe gedabf bd cabed faedbgc | deb fcdgeba gbeacd cedagf
+
aefdcbg gedbfc fdg cgfb dfaeb fcagde dgcaeb gcedb efbgd fg | gdf bgdec bcegd gbedf
+
beacdg gadcf bdcgefa bgdcfe fb eacbg beaf febacg bafcg fcb | dcaegfb cbf egdbca dgcfa
+
dgcaf bdgaef egfbdca aef edcabf ef agdbe cagebd feagd efbg | badecg egfdba dbegafc gfbe
+
ecfab fdgae cbdefa dafce acbegfd acd cbed cefgba cd acdfbg | ebcd fceadb cbeagf bdacef
+
cdage aecfgd afecbdg dcafg adgcbe eagdfb fd gfcab edcf fdg | cgedab gdf fgd gdf
+
gabfc bca cbefgd cgea abdecf ca cbfgead caefbg gfceb abfgd | begcdaf ca ceag fgceb
+
cdfbgea gcad dfcbg cgbfea agf bcadgf fdabg aefdb cedgfb ga | gbdcf cdag bcdfg fdbegc
+
fc gbefdc abfecg egcab aefc acgfb bcf fbeadgc adbegc agfbd | cfgba adfbgce cf cbagf
+
beadcg cgbf dfegb bg adbfecg gecfdb fegad bfced eabfdc egb | gdfae cgbdef gadef gfcb
+
gbeadfc dcebg gc dgac adegcb egbfd gec afbdec decab afbgec | egabcdf agcedb cfegab egbdc
+
adgebc gea afcdg fgbade dbaec bcdfae cdfgaeb gcaed ge ecbg | ega dagebf gdfbae gbdeac
+335 -53
2021/solutions.livemd
···
livebook:{"persist_outputs":true}
-->
+
<!-- livebook:{"persist_outputs":true} -->
+
# Advent of Code 2021
## Setup
···
])
```
+
```output
+
:ok
+
```
+
## Day 1
### Load input
···
|> Stream.map(&String.to_integer(String.trim(&1)))
```
+
```output
+
#Stream<[
+
enum: %File.Stream{
+
line_or_bytes: :line,
+
modes: [:raw, :read_ahead, :binary],
+
path: "day1.txt",
+
raw: true
+
},
+
funs: [#Function<47.58486609/1 in Stream.map/2>]
+
]>
+
```
+
### Task 1
<!-- livebook:{"break_markdown":true} -->
···
stream
|> Stream.chunk_every(2, 1, :discard)
|> Enum.count(fn [a, b] -> a < b end)
+
```
+
+
```output
+
1688
```
### Task 2
···
|> Enum.count(fn [a, _, _, b] -> a < b end)
```
+
```output
+
1728
+
```
+
## Day 2
### Load input
···
end)
```
+
```output
+
#Stream<[
+
enum: %File.Stream{
+
line_or_bytes: :line,
+
modes: [:raw, :read_ahead, :binary],
+
path: "day2.txt",
+
raw: true
+
},
+
funs: [#Function<47.58486609/1 in Stream.map/2>]
+
]>
+
```
+
### Task 1
```elixir
···
h * d
```
+
```output
+
1499229
+
```
+
### Task 2
```elixir
···
h * d
```
+
```output
+
1340836560
+
```
+
## Day 3
### Input
···
end
```
+
```output
+
{:module, Day3, <<70, 79, 82, 49, 0, 0, 7, ...>>, {:count, 1}}
+
```
+
### Task 1
```elixir
···
end)
a * b
+
```
+
+
```output
+
3847100
```
### Task 2
···
o2 = List.to_integer(Day3.Task2.reduce(stream, &>/2), 2)
co2 * o2
+
```
+
+
```output
+
4105235
```
## Day 4
···
end
```
+
```output
+
{:module, Day4, <<70, 79, 82, 49, 0, 0, 15, ...>>, {:all_in, 2}}
+
```
+
### Task 1
We simply traverse the `numbers` list aggregating the numbers (order doesn't really matter,
···
bingo -> {:halt, Enum.sum(Day4.not_matched(bingo, matches)) * elem}
end
end)
+
```
+
+
```output
+
34506
```
### Task 2
···
end)
```
+
```output
+
7686
+
```
+
## Day 5
```elixir
···
def horizontal?(a), do: a.start.y == a.finish.y
def vertical?(a), do: a.start.x == a.finish.x
-
def intersect?(a, b) do
-
a.start.x in b.start.x..b.finish.y and b.start.y in a.start.y..a.finish.y
-
end
-
-
def overlapping?(a, b) do
-
{a.start.x, a.finish.x} == {b.start.x, b.finish.x} or
-
{a.start.y, a.finish.y} == {b.start.y, b.start.y}
+
def points(a) do
+
case {sign(a.finish.x - a.start.x), sign(a.finish.y - a.start.y)} do
+
{0, dy} -> for y <- a.start.y..a.finish.y//dy, do: {a.start.x, y}
+
{dx, 0} -> for x <- a.start.x..a.finish.x//dx, do: {x, a.start.y}
+
{dx, dy} -> Enum.zip(a.start.x..a.finish.x//dx, a.start.y..a.finish.y//dy)
+
end
end
def orientation(a) do
···
true -> :diagonal
end
end
+
+
defp sign(0), do: 0
+
defp sign(x) when x < 0, do: -1
+
defp sign(x) when x > 0, do: 1
end
end
···
Day5.Line.new(pa, pb)
end)
-
-
x_min =
-
lines
-
|> Enum.map(& &1.start.x)
-
|> Enum.min()
-
-
x_max =
-
lines
-
|> Enum.map(& &1.finish.x)
-
|> Enum.max()
+
```
-
y_min =
-
lines
-
|> Enum.map(& &1.start.y)
-
|> Enum.min()
+
```output
+
#Stream<[
+
enum: %File.Stream{
+
line_or_bytes: :line,
+
modes: [:raw, :read_ahead, :binary],
+
path: "day5.txt",
+
raw: true
+
},
+
funs: [#Function<47.58486609/1 in Stream.map/2>, #Function<47.58486609/1 in Stream.map/2>]
+
]>
+
```
-
y_max =
-
lines
-
|> Enum.map(& &1.finish.y)
-
|> Enum.max()
+
### Task 1
-
{x_min, x_max, y_min, y_max}
+
```elixir
+
lines
+
|> Stream.filter(&(Day5.Line.orientation(&1) != :diagonal))
+
|> Stream.flat_map(&Day5.Line.points/1)
+
|> Enum.frequencies()
+
|> Enum.count(fn {_k, v} -> v > 1 end)
+
```
-
arr = Nx.iota({1000, 1000})
+
```output
+
5197
+
```
-
arr = Nx.subtract(arr, arr)
+
### Task 2
+
```elixir
lines
-
|> Enum.flat_map(fn a ->
-
case Day5.Line.orientation(a) do
-
:diagonal -> [(a.start.x - a.finish.x) / (a.start.y - a.finish.y)]
-
_ -> []
-
end
-
end)
+
|> Stream.flat_map(&Day5.Line.points/1)
+
|> Enum.frequencies()
+
|> Enum.count(fn {_k, v} -> v > 1 end)
```
-
### Task 1
-
-
```elixir
-
%{horizontal: horiz, vertical: vert} = Enum.group_by(lines, &Day5.Line.orientation/1)
-
-
horiz = Enum.sort_by(horiz, &{&1.start.x, &1.start.y})
-
vert = Enum.sort_by(vert, & &1.start.x)
+
```output
+
18605
```
## Day 6
···
|> Enum.map(&String.to_integer/1)
|> Enum.frequencies()
|> Map.merge(initial, fn _, a, _ -> a end)
+
+
defmodule Day6 do
+
def next(%{0 => next} = population) do
+
1..8
+
|> Map.new(&{&1 - 1, population[&1]})
+
|> Map.merge(%{6 => next, 8 => next}, fn _, v1, v2 -> v1 + v2 end)
+
end
+
end
+
```
+
+
```output
+
{:module, Day6, <<70, 79, 82, 49, 0, 0, 7, ...>>, {:next, 1}}
```
### Task 1
```elixir
1..80
-
|> Enum.reduce(counts, fn _, %{0 => next} = acc ->
-
1..8
-
|> Map.new(fn idx -> {idx - 1, acc[idx]} end)
-
|> Map.update!(6, &(&1 + next))
-
|> Map.put(8, next)
-
end)
+
|> Enum.reduce(counts, fn _, acc -> Day6.next(acc) end)
|> Map.values()
|> Enum.sum()
```
+
```output
+
343441
+
```
+
### Task 2
```elixir
1..256
-
|> Enum.reduce(counts, fn _, %{0 => next} = acc ->
-
1..8
-
|> Map.new(fn idx -> {idx - 1, acc[idx]} end)
-
|> Map.update!(6, &(&1 + next))
-
|> Map.put(8, next)
-
end)
+
|> Enum.reduce(counts, fn _, acc -> Day6.next(acc) end)
|> Map.values()
|> Enum.sum()
```
+
+
```output
+
1569108373832
+
```
+
+
## Day 7
+
+
```elixir
+
input =
+
File.read!("day7.txt")
+
|> String.trim()
+
|> String.split(",")
+
|> Enum.map(&String.to_integer/1)
+
```
+
+
```output
+
[1101, 1, 29, 67, 1102, 0, 1, 65, 1008, 65, 35, 66, 1005, 66, 28, 1, 67, 65, 20, 4, 0, 1001, 65, 1,
+
65, 1106, 0, 8, 99, 35, 67, 101, 99, 105, 32, 110, 39, 101, 115, 116, 32, 112, 97, 115, 32, 117,
+
110, 101, 32, 105, ...]
+
```
+
+
### Task 1
+
+
```elixir
+
mean = Enum.at(Enum.sort(input), div(length(input), 2))
+
+
input
+
|> Enum.map(&abs(&1 - mean))
+
|> Enum.sum()
+
```
+
+
```output
+
336721
+
```
+
+
### Task 2
+
+
```elixir
+
arith_sum = fn n -> div(n * n + n, 2) end
+
+
max = Enum.max(input)
+
+
0..max
+
|> Enum.reduce(:infinity, fn n, acc ->
+
sum =
+
input
+
|> Enum.map(&arith_sum.(abs(&1 - n)))
+
|> Enum.sum()
+
+
if sum < acc, do: sum, else: acc
+
end)
+
```
+
+
```output
+
91638945
+
```
+
+
## Day 8
+
+
```elixir
+
input =
+
File.stream!("day8.txt")
+
|> Stream.map(fn line ->
+
line
+
|> String.split(" | ")
+
|> Enum.map(fn part ->
+
part
+
|> String.trim()
+
|> String.split(" ")
+
|> Enum.map(fn disp ->
+
disp
+
|> String.to_charlist()
+
|> Enum.sort()
+
|> List.to_string()
+
end)
+
end)
+
|> List.to_tuple()
+
end)
+
```
+
+
```output
+
#Stream<[
+
enum: %File.Stream{
+
line_or_bytes: :line,
+
modes: [:raw, :read_ahead, :binary],
+
path: "day8.txt",
+
raw: true
+
},
+
funs: [#Function<47.58486609/1 in Stream.map/2>]
+
]>
+
```
+
+
```elixir
+
input
+
|> Enum.map(fn {_, output} ->
+
Enum.count(output, &(byte_size(&1) in [2, 3, 4, 7]))
+
end)
+
|> Enum.sum()
+
```
+
+
```output
+
390
+
```
+
+
```elixir
+
defmodule Day8.Task2 do
+
def a --- b do
+
MapSet.difference(a, b)
+
end
+
+
def a +++ b do
+
MapSet.union(a, b)
+
end
+
+
def a <~> b do
+
MapSet.intersection(a, b)
+
end
+
+
def a <|> b do
+
(a +++ b) --- (a <~> b)
+
end
+
+
# 1. 7. 4. 2|3|5. 2|3|5. 2|3|5. 6|9|0. 6|9|0. 6|9|0. 8.
+
def deduce({cf, acf, bcdf, acdeg, acdfg, abdfg, abdefg, abcdfg, abcefg, abcdefg}) do
+
a = acf --- cf
+
eg = abcdefg --- (acf +++ bcdf)
+
bd = bcdf --- cf
+
abfg = abdefg <|> abcdfg <|> abcefg
+
b = abfg <~> bd
+
f = abfg <~> cf
+
g = abfg --- (a +++ b +++ f)
+
d = bd --- b
+
c = cf --- f
+
e = eg --- g
+
+
{a, b, c, d, e, f, g} =
+
[a, b, c, d, e, f, g]
+
|> Enum.map(&extract/1)
+
|> List.to_tuple()
+
+
[
+
# 0
+
[a, b, c, e, f, g],
+
# 1
+
[c, f],
+
# 2
+
[a, c, d, e, g],
+
# 3
+
[a, c, d, f, g],
+
# 4
+
[b, c, d, f],
+
# 5
+
[a, b, d, f, g],
+
# 6
+
[a, b, d, e, f, g],
+
# 7
+
[a, c, f],
+
# 8
+
[a, b, c, d, e, f, g],
+
# 9
+
[a, b, c, d, f, g]
+
]
+
|> Enum.map(&List.to_string(Enum.sort(&1)))
+
|> Enum.with_index()
+
|> Map.new()
+
end
+
+
defp extract(a) do
+
[v] = MapSet.to_list(a)
+
+
v
+
end
+
+
def decode(matches, output) do
+
output
+
|> Enum.map(&matches[&1])
+
|> Integer.undigits()
+
end
+
end
+
+
input
+
|> Enum.map(fn {input, output} ->
+
input
+
|> Enum.sort_by(&byte_size/1)
+
|> Enum.map(&MapSet.new(String.to_charlist(&1)))
+
|> List.to_tuple()
+
|> Day8.Task2.deduce()
+
|> Day8.Task2.decode(output)
+
end)
+
|> Enum.sum()
+
```
+
+
```output
+
warning: variable "abdfg" is unused (if the variable is not meant to be used, prefix it with an underscore)
+
solutions.livemd#cell:19: Day8.Task2.deduce/1
+
+
warning: variable "acdeg" is unused (if the variable is not meant to be used, prefix it with an underscore)
+
solutions.livemd#cell:19: Day8.Task2.deduce/1
+
+
warning: variable "acdfg" is unused (if the variable is not meant to be used, prefix it with an underscore)
+
solutions.livemd#cell:19: Day8.Task2.deduce/1
+
+
```
+
+
```output
+
1011785
+
```