From 4db07684cc8ba36affbda458de657fc10fee48fa Mon Sep 17 00:00:00 2001 From: Penguin Date: Mon, 6 Dec 2021 16:51:46 -0600 Subject: [PATCH] day 4 finished... turns out my answer was wrong cuz i was using the test input file and not the real one. rip --- day4/c/aoc_day4 | Bin 25920 -> 27104 bytes day4/c/aoc_day4.c | 74 ++++-- day4/c/aoc_day4.o | Bin 18536 -> 20824 bytes day4/input.txt | 601 ++++++++++++++++++++++++++++++++++++++++++++ day4/input_test.txt | 19 ++ 5 files changed, 676 insertions(+), 18 deletions(-) create mode 100644 day4/input.txt create mode 100644 day4/input_test.txt diff --git a/day4/c/aoc_day4 b/day4/c/aoc_day4 index b290d1142132d5aee513fcf9f2dab108119cdd9b..2b7d4becd086ec2ebbe77983b7b3f0ba3e733974 100755 GIT binary patch delta 8232 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 G$@xE5dRyKA delta 6646 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 bingo_board_count) + { + break; + } + } + + printf("Answer for part 2: %d\n", p2_answer); return 0; } @@ -195,7 +233,7 @@ bool bingo_add_new_entry(board_t* board, uint8_t num) bool bingo_board_win_check(const board_t* board) { - for(int wc = 0; wc < 12; wc++) + for(int wc = 0; wc < 10; wc++) { // found a winner check if((board->output & win_conditions[wc]) == win_conditions[wc]) diff --git a/day4/c/aoc_day4.o b/day4/c/aoc_day4.o index 29930e8c0342cfc170710327e62c8e103b6df243..4e670ab676cc4eb5084f06d0d7c7eca3d29c3313 100644 GIT binary patch literal 20824 zcmbuH2{@Ha*nnSaqEPvSl%o!*B&SWHFLZF!Q9_o!%6cqii(_e_1##k}Rjc;2mlPri zX`_wyq7`N%{S%xuj~Jx>w3>SbI&u+JhQ&@E-bO-+sVqvFj!=mznOny zm@>>JhkwIXlAsl%#|&VsMIU&g@0=@~Qtmi;Ss{y;SSrIyY*UE-kXQx+{Jw(>0VF6aDv8*EfBy~onj3-urN!GXOxhnR$JaGh@E3(&ZR#wxqV$#%s zMR~5MOuyQ^TG)$celhwDuoj@Emjv@L5?kj3OmH08N{iK%80U%O*v;M5^pG9VM~N9_ zo_SmJTWDrAou8ZLuInKB!TD;-DYY(yj&e%HJrud3%3II4$u-eR)@u10a@I08J1hD$ z@uGr5;(3L{U)s^P)bj0F)@sLLb*27UyYs~pprh7q)-$ZnLW9<>4x;vR${;j@^VWqg zYTzZl(RvAW9K>9si*bt>;*K;eOzYI*^U#qJIC3;)EKE z^k?<^$263I0j4Jt$(Wdo2o8&g7Mcj-gp4t(r!o^29x7l7A|t~iS+POEAp%x}Ph?bZ zSRha}Vfjb;#DXv@EIQOz5XpjQkb%FxGGiSU6$?NB$OZI;tdZkc2L8WejubmdRA6o! zL11v0K5Q2tc0Qmyf0i(u6&@i7V@Vui1wbF5-AI9tKPVgIl4>)c7C}MLtge2Ut~{P9 zbzbT?w1q%;0Lw2tG$KSG1Wx#d`$YOjp<1|ez7{cT)W5DXTzJdg1Q{`mKQB$*0Gt_~ zD2eR>0-RDF=v^nC=o0K;b!iWY$G|dB-$_w&san!hd4}POL)cb)v5?K2EvK;vjx)|zNfM_6C^?8qt?T;I z=%KXkQa3@?R4q_9Flm(Fe39pip7BM$oOqxSJRHP)whX7#5uD^4L87cfVuf@v%<*zC ze-nL@mnhGc0bRp}nrvPgD91r`l{W#dd1}ccfE%#RAky4T1l+6y|XD6>!;FpjY9c1RI|(3pLZ(uyqq(%J9XK&fmBO1Wd6(VPMo4F9YirSax*Te9?POspzq!+_WCR zuf=TjA@el*kjivO_qfz#p*8Ujmhc{ZP&}zr6T;nk!o?xkfFi2{Lh# zr0Q^_o5BdJEsTr`-()GZCn0&ZOQLOk(OzE$bSbc{ zgcD)Ifwq>U!`9@R|BNoS&}GM~IDjRWZy{uBMJEBzl;E_M%npevFHJhx{dvQrvtKPa z6Sl{)3b-b4N{Mw?^tjV)X;#9_t2MtmIs!loXfe#I`RyGY|6Av%C3}G!ujavN^q&hv z;tgr{lTKnLDHdLVZItwxBy}4`Nk55Ew^5SO11{HtDaI@Y$5J)$^PzKxpsNa^K;XoM z61Pq4HZMeDhDJ$jOhD`ai>j|aUatGzI?ovzA2d8eXLY{YDcS6xVX54lhpfE38NAwD zrS8kL^lWdh9o?(9{?9$9sx=(h`r;Ky+?#Ft^(*uYb-YBPu{s+(ZukYn1n7xAH9Y>2 z^{FoEoJH$43m45kHhrA?elRXK9NJ=8G@#5RUEDI`RpjV{{)cL!Rd)_cYRDRw>60Rzqa-IBN$!kl)f{OIdxG?0m&*@|9Xg2Ii!e&6S;^eMH~slK1ds0gA)r?{Yls zcP5rCl-;UbJ7woq>v>nyd&Gk<^RlG_Z`M#cqM zs|i!ILTc>2BQ}*~DjYAbH%c7vqlYlu^uF77)gBkMLPkvNnds7Ez+m$}Jz}(u-gF!p zSAHbrou8tG!y{Y8X|Dr)K4|N$*BsKJQ>4>!B=xU#NA=ouwuD-mxc+rMMAmOa`sS$G ze&S)O^B)>$&VLgTSgq0f!zPsgjS*4pBAp?_9=;M+rKJ?lxBb}5vh|76Y3=;{>FQQZx6kF==SUKUwtzdn>U7BP@g|b zz&UaFS&*4c`2wRgeR55HIbOap`+@hf`!d%wE06oR}9dWC63~y3fhL-Z& zJF|LfY?@^^rAL*YS<%co@nNm$#(Vm{oi)9!xao6bv35vR|JJnu8B0aW0@YUh760>0 z@~OR>duz|>UtCZ<>z|nk$2VHVC7erS4JpVzIeAlp+3EG`pS11Ix-#ttH+^yB7|pSK zlU?1nEP1OMKF@`9e67;3`F@eZW<2-unRrI2pGs_7!DhkWU*gj1PNQu*hNOEAKR&76 z;(m^7Ur*11@Qtg_jXS}6Y|N=^N*(-uL+YULe8rT=dGQ@8i;}m6p3ZKpi5;F%(kv6- z)1_okqjUS%g`d)I#8v&(t#;v^zvvuUx}}XW0mGC>{byFe=#t4@z;Y1`g&tbkKUz{% z=?u5PJWD&@{+v~M_rT|&oVr-0yC0$!RmAL;&o}LVz4GITop~{${a>bR-X3<|d~;cC zVaA1t`=gfYEzO^zy(}heWMcz&**a7C1ul(_CG6+tCyyK=C|IkzCfD9!fYRMtii5%@ zY=}5G>$#)IDt!e%R`u*ZEh$#5RtaWvH0?v*mw$MD zKwWkA{k9>cTQ~o@|Ki)kcb4@Q-BT)N|59^YcQ{=4Uc1+htu5_|h8dsrX73(tDqWxP zI;{`ab09b#w@u(&y1{zl*KX0_6>-fpg`yPv6W8@BeY>Qgw=_Ta>_ZXWvv{AB;M z3^ZHDj(eE(;MKd$+xICYKMd??WPJYPySDA&=FVn4#!dRZbA+w(rl?+5o*rA8xVG?` z`=|?6oY6j3^JjfnvVHN++p?eJEC%G1j&A8$?R&L*4r}ts)P4CkLyAgAPWMkfYn61S z=IZ1W#fOuN3Ks7ibm!iSv&G^44$pezcjwu@nc5S)9UW@#m44T_<|!QGa4B@t;$*k9 zjJ((%ubWbOr_G&IQP-@hSakf-_8}g{YD|bxq~!~b^3rD6r9DQSKk`gPi+Scpgaf2Oia|hjdV12CSZKZMtv(Us9 z><7sH(CGHxc-*%58IC;H=^7OLi0Yz++Oe0mpK z@+m9oy?JYK(&SYBxcL)Tek$jU((wFbTsmQ_%J>7{Q&!d-*XE}jDossde;CKzH%u|@ z>!rcG%|TVO3!fkRJd)$lVO7qJGe;R)v z=Yh(gBW7Oim6qLp6};jEb397al*^~Ghg{X~x5Q@hJO0TD-PLM_`hNXv;Aq@r_cmnq z%HBgKi=Dj1!Q;a?wO@TspI@%551jhHu29>+c=r+Ul`^~*fJC+9FL*8Sii{=`{Fa}Ld%k?b}jt4Y%|{M*Uo%f1!d zoFjRc_MMXBJz5sH{*_m9gHC*N@yF;-N0xl>3)8<8<2>0ZJLzhTa?H7grkqLV18nmj zY;=7i%sf}xbIG$GZ3Q>ZiC%wu;82!uw0L^b1^0Y|0Z026mOcKI@h;lbcx>&L;d64LU#j!b>I?fvKR2ZL!L#@OIh!l6xz| zZCK?6huwLJT(p~+T zhA!MR&4(5BGgEp7#;e?We}6#KBQa*|1w-4a4RXPteQGbx;dZnp5R6aQnioW(P~GZ|7R?Y1n=Lq2tE{_D{~>@?k|b zZw3V5Bel1_`xc-*#=KHlEmzKo2j zqJKnEujHzTrO7hG7{(?|<|dJEAu@pN#BCeq=kM(;sP|@M+!T$xWd@E_)jZ~A=gKkE z*DRdruWzEcF3!J1BW=srkzQLbl=j$s<4XCUih;fvL;TZ?E3TIhzq~uN(zm+w@<{Rg zUV~O_8{%ZrbJA+&|$7(9+CaqE@1t3y_V+UuCb(Pd#lBQ&He%DBVO@+g}OrZA=mlS)7HD@s7&z5mRdv4iR~=1!h(!0TZ8EB0oB*4ow|SsCr=EGu;d_e2(JcZcCc$JL&XIeR{4ELjy$>%ZW({omf*)G{Jos-&cJ zB=6k$a;$NJqkP{RA+>f$%bvtIgl@42o~JT@S*Y5f(=mF42H zc&oOdK5pw?4}VjfRA_NPO}*f|j`_hI!KE|a`i&{yHcN4e+L$qGywB*43ZGuG+5XiW z*=NmcwWtssqbl*3s|H(#god=LkG|HB>v~gma>{7W0l_a6k9Pki-(s=Fe*J^B7Y)}x zkQqJ3Xhrk3OaDxb+@4|=_wYg0m9Q(91J-CvjWZTauipLFqn)eT1wltw)VCD(=DCcX zda(Uqw|fd%$y*iPCjPS_Y}JvEv8qkOlC!sk?U}Ebw}7|%wB{(Q5q8bj=R_XdxUAQl zsiX8V_M1Nkke=@wd{z9U>zWaBr20dqPb@$tUnH~L}>FjmOBK1f|7eX{rH-@9?pJHFCMSN+$q;~smnJXD%Le-#xLtO-k*aG|*I z+)v|_D;7%K&gL7W>0Q5O5b{X=(1^*iYabt--Y?SL!sX8N#*Xl8w>7cL9!;7am}qlq z(+rPCPj~&TWm8wDP;_ANnxl(7{<-Ek=bwH)!TU!kifGF5Nf|FWCz?XbBODYIstN?x|xTz}{5~&y{xTIg=AJ3WvKcUi@xP54pEPPyO(D z*t%`Gt5J=!qm`@5Q9ds^lry$pw?V7ApUipu<=SVLStHL*s#9MbByOI-J6iTs;pX$U z^2;?Vtb6x6K0Ryy$y2W!HD}vco-OxH)fR8+({bHHm=LO*r8!Tq>cNf!mn;A7WxK9; zye`YYpub8>_~2q~S5d|J%xaNSqAedqRaIpLWz^wEU(U))aS)_!UUIh(%aZb?V` zoyF$5Ti$*RThzMiL3-i1#c!&8Mz5SBa6RAf#pm3ECuUnq9$3EJ;#m3pMC|hj?_M*9 z_0J2}y>7R-wpYmgWx`j>r>Bp!k9uC|wC#{s{k16b@d4G@T=t9F=ONb5547_fpDn-V zw_SD7`+kGGcJHbgGS;l1uPD2*_{rKv?Ri$?%iUy;xTon`$P5yF*EH_#HFCn?70(Lv zr)ZuF(=goeQd}1Bqon_m#eZd~y{tH5wWZ&k>2q{XkIZlH`S+r5_xXnJ@=OGqr)=q0 zm=`j7d8Vhb_-?xFb`@`Uq=0=AS%rQOPx-``&JS0&i(t zcyj&vUDN(Mj*n^kd}CpLQvcjd)7>vQXEpqsV0`j+Bsc8aj#H|ZA3sz!-BHPW7s^zI z4sG73qPa?d6COv53v(Ki(2OF&{zHDZd9v_)-eT1ye+P3DUmi8TQkEa|9(r9WQ^FDXlBu?de zr#G(_n;)8K<)WeK&-uRngK>20tbt)0-fZEX)p{1c;(glOv&@}UaW0Jgq)FphM)p%@ z3}JCNCL9xVJHp6=%Nh$DaQcB%MwXE&g$#=fisSlgpahwP&Wuc)x=gvfs!_UvgR1EY#Yw8;61&-} zI?2vaRvl-pYHF=&1T<_^wLlIVRVAJZGYe#w*Z^lqMJQV~&=$zKLeW}kYv*)1fsE>b z>3r3k>E7UMtqRC;Szv$CZ}zQKpm%>1*go>i$BsWG%5{#W|E9`GTK&Ha#^e~q-=Tz~ zn-VHjj)5-~eiu2W$L|mjIq*8^Pa?VC{8n;5iH-t8m&`)EFJS`)4G?Eje5fR@*f~CN@(9G8FhJ+glCuI6L-Fy5iz#j; zi7PU36t|Pa6&M?e^AY!=xHIBIDDEza|2|IO`0q`OH#`?30Pn?g@3ew$cbO$fe>F5`}WUGVxYIDB34Cp&Kd@6G%>{_!I9u?zjSF8Hr5 zxFTA^K=Oa2XBYghF8H7>xKS6}qzgW}3(oC=J9NPrpKw1ff1d@TP5c-W{v;0kF@--P z;m;`eGaCMkg+Jrqk2(C|NK!bGB#tB#N0N&p$z}#s#xTC%6>qqgkH5cHm>||m5GIUV zz<^iIUVhYXQ zgJU2#FvlBYs1Mgp%<=s+)E`9fG{Qc7Q-t+5687O*hYf?Ld3BCw~p+Gym!GZOcf-n?VE?lE9$LlNPa4p3A00={Y9Iok@ zUw{w@tq<2DD3F7v6rK7_5CVbzz^fg$(}QRqV}ffDd^o{J5S-MXN^tm51hyYSaI(I8 z2@bDGSpO%%Sp+wNjst-wxJSeK(TKzPlKs1e;4DIaFTvq{4%<0OaQHqF^HT&T?OaD3 zp5V0_>)#>tNq=eyeR%E1`cDacHo<4efd~+o46pfEKZW301Yd(V-46K#C+mBT;ADMo z5u8QXe?ss<1Xq9s0)c*Ng9H1ij5zJj--JHdZnjle-FV;3H?Ka9k}Pi?RK2dXA``D;G~^mf^!IcB@l)J zch21;A?XiXlc7Kkcl&sqg=-WP$a{dp3`T&!Hi3e3(VjWRyyjJf2S z3c$iCZi4I!DZUf&6pCL&e!~4F6l@>vWB~(9LuSQfZ+%H1Gyb6uWffTnz{erI}SpPEOmXyAS z)GUMd4_F`Db))p-kR3c8vAziT6G7?ABOXuj56I3+io-P&3f^yE`?XTc;OiRZYmuE3 zl$|*!j`t^6AMTf-R8jhT)Xw)QK2)mCJg0a%Dz}B=b5Xp5;)jr(9w;C7Cm*$sHpLGh zZb)%C6vy)$+c8J_R+Ro06nCV!71IBQ;{Tv_2&DL36c49(Gpgr0irXNbMe%XSegVbt z`f`Kf<*40o`MAC@h(DtAm!Wz!QG5pS=M%*jA%F1ubZp-T*)c-tnCGGR2#W7Q{*0yg zNyH~m{4k1hDQ=JSr%?PM^2eFt(&q{c<4N(;sJ>nl--zM@ia$g8^C<3t%EkL4+zy)& zUyt-*cJlrui?S1m>>r}|Bg6|RejN2v1;rasxz!ZM{ntwIo+#c`Q9>Zaal7OF4=z`P{L7&9S0I0~Dei>gH!1!dmHUR`!;qc6=usIi z*Bg~Pl;W?EzAeQakX-@ATacYl#9_BW6Zkn#5~ZJy?5`#`+*84O4=C#?4);t@HWM7~ zi$oI2FvkcE?bsroOL4ppDIhqsvk&Q)5*+TMijkjJ2@dV!{l`s;H2%+19Jfy$#qoG(LL8b!O%Fm0^NZ5Qb~Mq(74{eO(+ByZ zL-E;&>k%Bb1D-D?1c!DOA^njQk44;!;Lr{W98fF?PPV5V!J++4$j)Sn!*@JTTo8v* z*bXxx1Tu@zhvklvP=*O2IJAET*$JVzPo38f0fV#V;eihTyQi z7g4`&MI5T3DJv-jFha>JtalF5ACOGuJ47IZ_#qE%t5Q4)XzFtRAJQ?XPq4;UU6DgjHcq+l6 zKP8B-B{&Q|LOhe=__@+ng2VA&3Jxeo2o8hzxl#_rWl(?R5ggjV&pj^_90u`vc$MPX z$WArlc)sBK!!Hy+fZE>x76t_C??86O6C5_d5Q!GUa0w3Q<9?*?NpXDt7(j7#RBi&r zbrH{`_$b7WQQR5v>xjeg4}+iVz5!bNEGdrnm)3}5|2H82r&9a?;vp12 zfp`+dPb0pW;tLQzg*ZIHda+Tx&Jvug*Cm3(dR3u%RZ;vL;?)F)_Wwrq8wn2W$fE1| zONzH6J8uaN?cnkAmEfeGl81Ug4<&9S;pGSNm#qS~R zPVolBBPqTC@kD|{WFzqo?B@v%n*i^_izwdt9Dv}^4t_6ROL6!N8p;cTL;Fb*3f_64 zjSy~!HHaHh{0QPU6u*MF7sVf-@g^iV^b_wt6A2Fed5-iq5gh8{{o!tcLw!}W4ipd^ z>f`tORRo9n_`a;3;G{nv2oCjUAo~hEK?DeFAJQK+fS75!*MgEnV<#=)Mg4N!mf`l6?XW!}_bkA0SX4HH{?BlKlSLJ}BDx z2WE2Jnvj7j@!+j;x|z|whO+J;sc=rK(eK$&iZ0rMsPSZ z?xFYtiZ`No3&rt$x-2ROo}e8(-thZ7%<*``-}7LO$J<284jykV6vyua{0UC>V>rRl zke7Hq5cvMoP4Q+Fx1;!1 z6rV!z4itBycsEr485GC;fyW)L7ryVq`z*}yeFPqdnB)7wV9LHFDmRScwunbj+zIh` z#9@@|M?792C;O3w^r0@PkLMlccpmX6eLRn5QJjVRIY4l-T*f47L8#Ej7o5SjaguWo z4n+z=d`yG_@Ly(3{C$KzjEQel6k`$@4kJ(imNm#g0U;@5&A1?W%55)t+qD>+q!DoY!!Uf0yL6BEKq)(^-wc-Eg z!~&UNmnc$3tWdlH^%qW7#{qPP-@wR&!wSXmDMw!#!q0bfK@^(8>o@!c3JP2oAV-&L zh$JFU4mu3MnR16Q1`OK#zvhSE-awmpT>(Lf;PSU)fX=vle6|AoPxV_bbb-g`IG-1Rv-aLDasH1hc4m#*#A9%{i*y-y+Hzy zG161#FV2qv9G`zGUyCc%;2}j=KKw=q=f~w20QRTyZ=&)mQGR^F`EfiK1pZXMH!2^$ z_kiX10te2I%fAZPpUU6a2P6P-`d`}r643cm`9|mhPnHi&(&gU=43=+-6F?Zs2TkcY zlbRSsmOvUBmb2~`E;Z7wG zn2Yk042Ef4_#H7^7pQ775h%YYWdQq+G2FjEn{@u2xO}QWI=>!B|5N{cu$Pt)hYEt@ z2b#qB@%Z^u*)YpacwqvP1C0ZL_bku`ogY4Xp@tYBVBE1JCuSz)KNXdX=|ANU;z{%4 M@4}?9-`oFx02M>9ZU6uP literal 18536 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 Qd?NB6e?NkY5Y0jT4~ON3BLDyZ diff --git a/day4/input.txt b/day4/input.txt new file mode 100644 index 0000000..9438e91 --- /dev/null +++ b/day4/input.txt @@ -0,0 +1,601 @@ +93,35,66,15,6,51,49,67,16,77,80,8,1,57,99,92,14,9,13,23,33,11,43,50,60,96,40,25,22,39,56,18,2,7,34,68,26,90,75,41,4,95,71,30,42,5,46,55,27,98,79,12,65,73,29,28,17,48,81,32,59,63,85,91,52,21,38,31,61,83,97,62,44,70,19,69,36,47,74,58,78,24,72,0,10,88,37,87,3,45,82,76,54,84,20,94,86,53,64,89 + +14 33 79 61 44 +85 60 38 13 48 +51 34 11 19 7 +21 30 73 6 76 +41 4 65 18 91 + + 3 82 68 26 93 +61 90 29 69 92 +60 94 99 6 83 +77 80 2 58 55 +59 65 95 38 62 + +41 9 73 71 74 +66 24 45 5 55 +97 82 53 63 16 +12 19 88 87 27 +31 8 75 98 83 + +63 24 86 90 45 +41 92 42 83 77 +64 28 54 94 10 +15 93 57 29 50 +23 39 37 48 38 + + 1 31 7 0 54 + 9 59 79 19 96 +51 14 77 38 45 +30 76 42 65 91 +72 60 37 43 71 + +22 81 40 97 27 +83 28 41 1 76 +69 68 64 57 78 +59 38 63 89 29 + 8 58 18 66 72 + +39 32 21 94 37 +20 1 66 82 52 +10 56 40 13 62 +59 96 44 75 50 +41 83 6 90 28 + +90 33 1 57 34 +14 86 93 92 68 +54 37 95 11 77 +88 13 62 72 48 +96 65 67 85 80 + +47 48 82 96 85 +78 91 42 38 11 +79 94 49 24 27 +56 92 72 45 73 +75 0 70 4 68 + +48 51 94 17 58 +37 88 56 66 16 +27 97 14 45 83 +53 39 6 5 68 +47 57 28 31 11 + +35 66 19 68 73 +41 49 10 80 48 +39 50 79 23 59 +15 45 40 17 75 +88 86 71 8 0 + +58 48 41 22 11 +97 59 17 71 44 + 6 24 49 84 42 +89 27 23 82 9 +60 86 90 65 34 + +11 58 2 98 26 +90 52 60 14 12 +69 63 56 36 30 + 3 44 19 5 85 +95 84 31 51 79 + +39 62 64 29 24 +56 9 0 18 3 +22 74 77 47 98 +55 93 79 4 33 +78 53 11 26 75 + +38 82 8 25 55 +74 1 21 30 46 +12 4 62 45 52 +24 39 0 92 15 +19 54 51 57 88 + +16 28 48 19 43 +58 96 67 22 61 + 8 9 74 5 81 +78 59 49 71 15 +82 46 42 32 70 + +73 89 80 92 42 + 4 60 99 75 39 + 5 50 64 98 91 +49 11 9 51 85 +27 97 54 93 14 + +70 41 37 53 62 + 0 57 48 39 61 +10 85 59 74 76 + 2 7 1 4 81 +26 78 60 80 72 + + 8 50 43 73 80 +74 86 64 95 30 +45 69 71 65 55 +52 66 36 62 60 +25 53 63 46 5 + + 5 57 15 82 46 +23 96 72 29 43 +98 91 42 51 99 +70 25 64 45 16 + 4 40 48 97 11 + +37 93 48 23 99 +98 8 21 78 36 +52 73 5 55 11 +63 42 88 38 94 + 1 80 71 68 15 + +51 34 66 87 17 +20 54 74 14 55 +84 64 96 31 2 +62 43 76 5 45 +98 71 50 56 82 + +13 59 67 25 94 +41 89 27 60 2 +77 31 48 63 62 +24 49 32 76 87 +70 85 51 52 66 + +31 22 23 36 47 +45 55 61 89 72 +62 81 35 79 8 +24 82 38 91 76 +74 5 29 94 58 + + 2 41 6 13 34 +86 46 44 38 56 +28 19 50 1 12 +96 23 33 91 64 + 7 89 59 9 70 + +81 69 97 10 87 +83 56 7 53 96 +93 42 68 29 62 +78 66 2 55 60 + 4 5 15 98 99 + +80 40 93 94 25 +95 99 55 31 12 +29 90 43 52 38 +51 64 92 37 77 +21 4 85 20 17 + +44 73 69 38 95 +11 47 19 83 91 +96 92 22 31 21 +70 62 88 25 82 +18 40 98 34 94 + + 6 14 86 29 99 + 8 5 15 38 90 +44 43 51 77 80 +78 32 75 83 3 +53 13 71 66 52 + +55 3 93 75 54 +58 57 60 15 70 +67 51 81 96 74 + 6 35 29 32 44 +38 56 5 50 88 + +38 46 11 16 33 +83 6 88 93 43 +42 56 77 9 85 +76 69 49 58 22 +15 14 4 54 23 + +27 84 97 50 46 +98 14 60 87 72 +20 38 74 13 32 +18 96 92 21 99 +93 43 86 16 66 + +53 12 29 78 41 +13 70 71 4 97 +44 1 37 84 49 +17 0 22 72 63 +61 66 60 32 68 + +92 44 20 56 69 +73 22 18 31 48 +71 93 83 16 49 +81 89 79 38 30 +80 24 26 86 62 + +82 58 76 20 5 +56 34 84 80 38 +12 49 8 52 91 +41 62 1 77 48 +23 83 51 81 2 + +77 5 96 13 52 +61 85 46 54 48 +56 80 20 83 69 +39 42 28 87 16 +59 40 45 58 62 + +35 87 52 85 9 +18 55 71 63 58 +86 28 20 5 68 +26 76 93 66 44 +53 2 95 6 60 + +19 53 33 59 27 +58 95 74 26 9 +98 25 49 92 44 +76 20 41 66 88 +47 50 57 24 28 + +54 63 31 74 72 +91 19 3 23 14 +85 44 66 55 33 +18 17 86 7 78 +42 22 15 99 93 + +33 31 15 40 44 +41 86 18 94 66 +19 69 91 76 95 +99 11 70 42 56 +68 82 90 12 83 + +79 21 74 63 22 +99 76 27 17 34 +91 52 14 2 26 +13 93 81 35 75 +48 62 0 39 6 + +61 3 96 95 10 + 4 39 22 29 49 + 5 7 15 54 83 + 2 33 65 62 14 + 8 73 24 47 87 + +24 75 54 90 5 +59 26 52 37 23 +11 36 42 47 93 +44 88 45 21 96 + 6 58 73 60 86 + +57 2 67 75 90 +87 51 80 35 24 +98 36 79 5 21 + 6 78 0 94 25 +16 3 81 41 45 + +63 84 58 52 9 +38 57 87 20 40 + 5 68 14 98 29 +71 88 21 80 61 + 3 43 31 48 26 + + 2 92 45 28 18 +89 20 90 42 99 +40 52 87 63 91 +13 31 59 24 29 +70 79 34 82 15 + +95 82 62 2 53 +63 19 10 42 16 +69 28 22 92 56 +11 3 17 76 71 +58 70 27 6 93 + +83 43 99 11 58 + 9 79 4 76 6 +18 49 56 36 72 +31 91 8 34 78 + 7 96 66 98 95 + +87 31 90 33 53 +70 39 50 73 3 +89 17 64 97 65 +11 85 42 57 6 +88 44 26 47 54 + +37 90 50 65 25 +68 15 87 33 0 +24 63 30 98 57 +13 7 93 22 34 +55 75 70 14 16 + +48 77 51 15 33 +84 52 22 73 67 +25 47 34 95 89 + 3 45 42 17 93 +56 53 68 72 8 + +60 44 46 84 70 +34 94 76 79 98 +36 37 59 90 22 +23 39 2 48 15 +81 4 7 3 21 + +60 58 26 10 66 +53 18 38 80 24 +93 56 11 27 21 +51 86 94 64 52 +65 57 28 98 69 + +32 45 64 94 68 +66 67 53 50 16 +37 60 10 33 70 +76 87 69 78 88 +71 99 63 38 25 + +54 14 31 45 40 +27 17 91 78 96 +70 84 11 98 75 + 6 94 72 88 18 +65 9 56 33 92 + +40 33 82 38 85 +98 91 44 26 57 +73 34 32 25 46 +58 8 16 42 95 +20 1 67 54 90 + +34 88 27 63 73 +92 70 5 21 15 + 1 82 74 9 23 +33 66 78 85 30 + 3 75 53 37 72 + +22 11 43 8 69 +57 30 72 26 58 +45 55 23 88 21 +53 0 19 31 65 +62 66 46 39 15 + +57 71 75 51 44 +49 96 10 53 47 +77 93 28 91 74 +70 41 79 89 97 +26 45 59 56 80 + +28 69 48 13 43 +10 75 80 58 40 + 1 92 82 94 33 +47 74 60 53 18 +51 11 77 9 55 + +50 3 89 47 34 +26 15 68 79 45 +94 90 19 59 73 +62 29 46 74 44 +91 5 39 10 14 + +11 49 87 19 2 + 9 33 71 57 66 +82 46 83 64 55 +52 76 67 15 73 +88 39 34 85 61 + +34 82 64 97 39 +53 30 71 22 85 +73 86 88 93 44 +56 25 52 87 4 +67 7 31 2 83 + + 9 6 54 84 46 + 4 75 65 63 1 +81 66 72 71 43 +17 61 51 48 35 +14 56 70 50 13 + + 0 48 33 27 35 + 7 20 9 97 46 + 8 13 52 11 24 +40 56 50 64 75 +32 92 36 54 5 + +19 49 78 92 20 +97 87 80 64 9 +26 34 67 21 91 +63 85 68 88 28 +18 93 41 31 79 + +97 13 9 26 58 + 1 19 76 31 51 +95 65 37 48 88 +92 72 98 10 43 +69 28 29 5 62 + +81 86 83 31 43 +37 95 51 42 17 +54 3 99 23 40 +15 72 16 4 78 +49 48 76 38 52 + +66 97 55 6 62 +38 95 58 7 96 +61 93 45 41 50 +13 51 92 2 52 +15 8 36 37 17 + +27 60 58 69 16 + 0 92 24 25 61 +65 28 52 20 99 +87 12 3 21 31 +48 67 63 70 11 + +51 32 36 37 62 +33 38 46 6 63 +88 97 67 72 84 +54 23 3 81 94 +59 50 40 11 21 + +30 22 59 53 35 +46 88 12 9 78 +95 31 39 10 67 +86 73 42 43 1 +93 21 16 51 28 + +61 98 77 62 41 +42 93 58 66 89 +64 14 18 67 76 +21 17 43 79 44 +47 0 20 95 97 + +47 75 70 8 26 +82 98 13 61 96 +94 74 17 78 30 +15 85 46 31 11 +99 28 39 51 92 + + 8 54 19 9 30 +63 90 99 7 50 +14 45 74 65 82 +10 76 85 21 20 +80 48 94 6 93 + +32 13 76 35 2 +57 51 25 43 85 +89 87 26 15 95 +24 67 33 34 14 +23 47 39 64 71 + +83 82 79 50 23 +77 60 67 8 32 +55 38 33 26 37 +17 36 69 44 43 +49 9 52 70 39 + +94 79 82 74 99 + 7 90 6 76 3 + 0 91 81 11 17 + 2 28 29 22 78 +33 1 23 16 86 + +53 18 72 38 1 +75 70 19 10 99 +34 60 30 61 95 +80 78 51 83 22 +25 23 11 6 44 + + 8 17 15 21 6 +46 79 77 11 23 +25 14 59 42 95 +50 16 90 49 2 +81 56 51 96 76 + +37 27 62 8 35 +67 81 84 47 53 +32 13 80 15 66 +95 94 59 38 97 +64 26 63 75 78 + +23 71 88 61 20 +35 32 59 10 67 +17 36 38 89 75 +74 8 30 57 39 +97 58 55 70 15 + +82 37 71 56 15 +92 66 10 1 14 +26 60 70 50 89 +97 58 83 3 61 +41 6 35 88 13 + +16 7 54 9 31 +47 91 50 17 51 + 6 38 24 14 69 +48 3 0 77 5 +43 86 70 80 40 + +39 94 95 47 98 +46 41 45 38 48 +18 73 56 99 76 +74 75 26 30 16 +42 11 85 86 51 + +39 68 42 79 14 +48 90 75 4 41 +34 76 63 49 83 +64 86 92 98 65 +40 15 54 20 1 + +17 4 47 37 8 +19 15 36 6 60 +23 5 24 87 55 +51 12 94 18 90 +81 3 86 39 88 + +58 46 25 13 81 +72 17 64 28 51 +91 1 55 57 49 +20 39 11 5 52 +60 22 24 15 53 + +40 50 55 39 6 +79 38 44 52 81 +83 36 11 42 88 +48 4 32 8 71 +34 65 51 2 46 + +21 47 96 94 19 +31 38 55 64 24 +36 57 32 9 34 +43 61 11 41 56 +58 2 4 28 59 + +47 14 83 62 76 +18 61 22 80 54 +24 87 49 13 40 +44 82 34 78 10 +94 55 29 95 71 + +68 54 76 1 39 +46 4 50 82 85 +75 26 43 58 98 +29 47 49 81 12 +14 19 57 11 41 + +65 38 2 0 57 +23 19 4 79 70 +88 8 73 25 34 +15 28 77 24 39 +31 97 11 62 37 + +29 26 19 14 40 +12 88 22 42 96 +95 63 78 21 53 +35 50 9 39 43 +10 46 24 87 13 + + 4 94 52 42 67 +71 33 15 75 80 +45 49 61 64 58 +35 37 62 55 30 +87 79 31 96 41 + +75 61 94 3 52 +59 13 35 53 54 +85 81 79 96 57 +36 38 40 28 93 +70 95 39 43 5 + +33 79 74 21 32 + 0 18 43 5 28 +82 63 66 56 27 +42 76 61 98 73 +83 9 2 96 23 + +96 47 61 45 89 +40 77 15 55 25 +23 39 10 18 91 +31 70 1 30 75 +67 94 37 4 51 + + 3 5 10 80 89 +60 17 42 55 92 +38 32 52 0 56 +96 61 79 34 90 +43 2 98 4 27 + +74 95 14 35 49 +67 66 57 76 88 +89 71 68 69 48 +20 70 3 0 12 +13 21 15 51 24 diff --git a/day4/input_test.txt b/day4/input_test.txt new file mode 100644 index 0000000..09639a7 --- /dev/null +++ b/day4/input_test.txt @@ -0,0 +1,19 @@ +7,4,9,5,11,17,23,2,0,14,21,24,10,16,13,6,15,25,12,22,18,20,8,19,3,26,1 + +22 13 17 11 0 + 8 2 23 4 24 +21 9 14 16 7 + 6 10 3 18 5 + 1 12 20 15 19 + + 3 15 0 2 22 + 9 18 13 17 5 +19 8 7 25 23 +20 11 10 24 4 +14 21 16 12 6 + +14 21 17 24 4 +10 16 15 9 19 +18 8 23 26 20 +22 11 13 6 5 + 2 0 12 3 7