From 433472ebb8a82e56ee893c47000a605fe6240a79 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Wed, 11 Dec 2024 20:25:49 -0600 Subject: [PATCH] add support for multiple Advent of Code years --- 2023/day1/input.txt | 1000 +++++++++++++++++++++++++++++ 2023/day1/input.txt.h | 15 + 2023/day1/sample1.txt | 4 + 2023/day1/sample1.txt.h | 15 + 2023/day1/sample2.txt | 7 + 2023/day1/sample2.txt.h | 15 + 2023/day1/solution.c | 11 + {day1 => 2024/day1}/input.txt | 0 2024/day1/input.txt.h | 15 + {day1 => 2024/day1}/sample1.txt | 0 2024/day1/sample1.txt.h | 15 + {day1 => 2024/day1}/solution.c | 4 +- {day10 => 2024/day10}/input.txt | 0 2024/day10/input.txt.h | 15 + {day10 => 2024/day10}/sample1.txt | 0 2024/day10/sample1.txt.h | 15 + {day10 => 2024/day10}/solution.c | 4 +- {day11 => 2024/day11}/input.txt | 0 2024/day11/input.txt.h | 15 + {day11 => 2024/day11}/sample1.txt | 0 2024/day11/sample1.txt.h | 15 + {day11 => 2024/day11}/solution.c | 4 +- {day2 => 2024/day2}/input.txt | 0 2024/day2/input.txt.h | 15 + {day2 => 2024/day2}/sample1.txt | 0 2024/day2/sample1.txt.h | 15 + {day2 => 2024/day2}/solution.c | 4 +- {day3 => 2024/day3}/input.txt | 0 2024/day3/input.txt.h | 15 + {day3 => 2024/day3}/sample1.txt | 0 2024/day3/sample1.txt.h | 15 + {day3 => 2024/day3}/sample2.txt | 0 2024/day3/sample2.txt.h | 15 + {day3 => 2024/day3}/solution.c | 4 +- {day4 => 2024/day4}/input.txt | 0 2024/day4/input.txt.h | 15 + {day4 => 2024/day4}/sample1.txt | 0 2024/day4/sample1.txt.h | 15 + {day4 => 2024/day4}/solution.c | 4 +- {day5 => 2024/day5}/input.txt | 0 2024/day5/input.txt.h | 15 + {day5 => 2024/day5}/sample1.txt | 0 2024/day5/sample1.txt.h | 15 + {day5 => 2024/day5}/solution.c | 4 +- {day6 => 2024/day6}/input.txt | 0 2024/day6/input.txt.h | 15 + {day6 => 2024/day6}/pos.py | 0 {day6 => 2024/day6}/render.cpp | 6 +- {day6 => 2024/day6}/sample1.txt | 0 2024/day6/sample1.txt.h | 15 + {day6 => 2024/day6}/solution.c | 4 +- {day6 => 2024/day6}/solution.h | 0 {day7 => 2024/day7}/input.txt | 0 2024/day7/input.txt.h | 15 + {day7 => 2024/day7}/sample1.txt | 0 2024/day7/sample1.txt.h | 15 + {day7 => 2024/day7}/solution.c | 4 +- {day8 => 2024/day8}/input.txt | 0 2024/day8/input.txt.h | 15 + {day8 => 2024/day8}/sample1.txt | 0 2024/day8/sample1.txt.h | 15 + {day8 => 2024/day8}/solution.c | 4 +- {day9 => 2024/day9}/input.txt | 0 2024/day9/input.txt.h | 15 + {day9 => 2024/day9}/sample1.txt | 0 2024/day9/sample1.txt.h | 15 + {day9 => 2024/day9}/solution.c | 4 +- Makefile | 8 + aoc.mk | 10 +- day1/input.txt.h | 15 - day1/sample1.txt.h | 15 - day10/input.txt.h | 15 - day10/sample1.txt.h | 15 - day11/input.txt.h | 15 - day11/sample1.txt.h | 15 - day2/input.txt.h | 15 - day2/sample1.txt.h | 15 - day3/input.txt.h | 15 - day3/sample1.txt.h | 15 - day3/sample2.txt.h | 15 - day4/input.txt.h | 15 - day4/sample1.txt.h | 15 - day5/input.txt.h | 15 - day5/sample1.txt.h | 15 - day6/input.txt.h | 15 - day6/sample1.txt.h | 15 - day7/input.txt.h | 15 - day7/sample1.txt.h | 15 - day8/input.txt.h | 15 - day8/sample1.txt.h | 15 - day9/input.txt.h | 15 - day9/sample1.txt.h | 15 - gen.sh | 122 ++-- input.h | 4 +- input_dreamcast.c | 16 +- input_dreamcast.inc | 189 +++--- runner.c | 18 +- runner.inc | 96 +-- solutions.mk | 74 ++- 99 files changed, 1741 insertions(+), 603 deletions(-) create mode 100644 2023/day1/input.txt create mode 100644 2023/day1/input.txt.h create mode 100644 2023/day1/sample1.txt create mode 100644 2023/day1/sample1.txt.h create mode 100644 2023/day1/sample2.txt create mode 100644 2023/day1/sample2.txt.h create mode 100644 2023/day1/solution.c rename {day1 => 2024/day1}/input.txt (100%) create mode 100644 2024/day1/input.txt.h rename {day1 => 2024/day1}/sample1.txt (100%) create mode 100644 2024/day1/sample1.txt.h rename {day1 => 2024/day1}/solution.c (92%) rename {day10 => 2024/day10}/input.txt (100%) create mode 100644 2024/day10/input.txt.h rename {day10 => 2024/day10}/sample1.txt (100%) create mode 100644 2024/day10/sample1.txt.h rename {day10 => 2024/day10}/solution.c (95%) rename {day11 => 2024/day11}/input.txt (100%) create mode 100644 2024/day11/input.txt.h rename {day11 => 2024/day11}/sample1.txt (100%) create mode 100644 2024/day11/sample1.txt.h rename {day11 => 2024/day11}/solution.c (96%) rename {day2 => 2024/day2}/input.txt (100%) create mode 100644 2024/day2/input.txt.h rename {day2 => 2024/day2}/sample1.txt (100%) create mode 100644 2024/day2/sample1.txt.h rename {day2 => 2024/day2}/solution.c (93%) rename {day3 => 2024/day3}/input.txt (100%) create mode 100644 2024/day3/input.txt.h rename {day3 => 2024/day3}/sample1.txt (100%) create mode 100644 2024/day3/sample1.txt.h rename {day3 => 2024/day3}/sample2.txt (100%) create mode 100644 2024/day3/sample2.txt.h rename {day3 => 2024/day3}/solution.c (95%) rename {day4 => 2024/day4}/input.txt (100%) create mode 100644 2024/day4/input.txt.h rename {day4 => 2024/day4}/sample1.txt (100%) create mode 100644 2024/day4/sample1.txt.h rename {day4 => 2024/day4}/solution.c (97%) rename {day5 => 2024/day5}/input.txt (100%) create mode 100644 2024/day5/input.txt.h rename {day5 => 2024/day5}/sample1.txt (100%) create mode 100644 2024/day5/sample1.txt.h rename {day5 => 2024/day5}/solution.c (95%) rename {day6 => 2024/day6}/input.txt (100%) create mode 100644 2024/day6/input.txt.h rename {day6 => 2024/day6}/pos.py (100%) rename {day6 => 2024/day6}/render.cpp (97%) rename {day6 => 2024/day6}/sample1.txt (100%) create mode 100644 2024/day6/sample1.txt.h rename {day6 => 2024/day6}/solution.c (98%) rename {day6 => 2024/day6}/solution.h (100%) rename {day7 => 2024/day7}/input.txt (100%) create mode 100644 2024/day7/input.txt.h rename {day7 => 2024/day7}/sample1.txt (100%) create mode 100644 2024/day7/sample1.txt.h rename {day7 => 2024/day7}/solution.c (95%) rename {day8 => 2024/day8}/input.txt (100%) create mode 100644 2024/day8/input.txt.h rename {day8 => 2024/day8}/sample1.txt (100%) create mode 100644 2024/day8/sample1.txt.h rename {day8 => 2024/day8}/solution.c (97%) rename {day9 => 2024/day9}/input.txt (100%) create mode 100644 2024/day9/input.txt.h rename {day9 => 2024/day9}/sample1.txt (100%) create mode 100644 2024/day9/sample1.txt.h rename {day9 => 2024/day9}/solution.c (97%) delete mode 100644 day1/input.txt.h delete mode 100644 day1/sample1.txt.h delete mode 100644 day10/input.txt.h delete mode 100644 day10/sample1.txt.h delete mode 100644 day11/input.txt.h delete mode 100644 day11/sample1.txt.h delete mode 100644 day2/input.txt.h delete mode 100644 day2/sample1.txt.h delete mode 100644 day3/input.txt.h delete mode 100644 day3/sample1.txt.h delete mode 100644 day3/sample2.txt.h delete mode 100644 day4/input.txt.h delete mode 100644 day4/sample1.txt.h delete mode 100644 day5/input.txt.h delete mode 100644 day5/sample1.txt.h delete mode 100644 day6/input.txt.h delete mode 100644 day6/sample1.txt.h delete mode 100644 day7/input.txt.h delete mode 100644 day7/sample1.txt.h delete mode 100644 day8/input.txt.h delete mode 100644 day8/sample1.txt.h delete mode 100644 day9/input.txt.h delete mode 100644 day9/sample1.txt.h diff --git a/2023/day1/input.txt b/2023/day1/input.txt new file mode 100644 index 0000000..bb9803e --- /dev/null +++ b/2023/day1/input.txt @@ -0,0 +1,1000 @@ +twovgtprdzcjjzkq3ffsbcblnpq +two8sixbmrmqzrrb1seven +9964pfxmmr474 +46one +7fvfourgkfkkbloneeightdrfscspgkdrmzzt1 +15two6six +htxxfmfd7nb +sixfivesixeight4pfsgxvn9sfjfk5 +pmjjpggvhkrq2 +tvbrkhlxdsnine65 +four5gkrptqninenbdvffour1z +foursgnlxmjtcrrfour7 +3onetwogkhmllzvrsqzhhnkvdg +nineninegxknqzpsix28 +1seven85189mv +gtwonejcncdlhpsxjrxnmpvfgtdrcdtd2nm +1ninemxzntjptl +qcmqfour2onesgplvgzkdltqtvzhtb1 +seventhreerxqvgkzqhfxfdhnp628zxtbjklkpdtwo +fjdsgcsqppzdthreefour3one3lvmpm +sixsevenfivefourxf4mzhmkztwonepzt +nineninesixskjkbhx6nineoneightj +four6nzqxhhnrg +86fiveone9dhrkkh6 +8ninetvnsrcsbpn +two43one +8vfvbrnclnmthree8onetwoeightthree +one2czxjgbzsn46ktj8twones +qfnlfivemqninextzppkfkb8 +ntvcmxsevengxdtc3five +8lsfkbbxkscc +seven5817smvjfpdktwo6mdfngz +92hqxbchfpnine +tvxbltz53oneninethreeonek9 +hvvjhd1 +six1six7sevensixqcvhsfour7 +seventwo2 +2svpbhrlhfjhbkf3fourvvspkfmbvztmtpcxndfnine9 +fivefour42 +sixvstzdtfive3qzmbbx +rfcxmthzlgxgrmjncszdvlnp6 +lhlncfjlhrqrfzr1 +cqnkmtfj5 +tctfngvrxljlt53pntbcfrftjpjvzqbqxh +6fgcdfive +4834sevenvssix1eight +rpxcthbpmhgrcxk4 +threecthhnine781 +pppqkscmthreeseven1sixfive +2tgrmvxpthree6 +7ckxjmlpkqqqjtfiveeightbmmdoneighttnv +six2two +lsshzhtdfour24 +mrjjgzsb92fivetwoxh3 +5fourcqhk3two85fiveeight +lsxpkxfmq97one +b87twosshtxkkplq5zkrrqcmfn +threeqsnd64hthreeldbtfkqpbqpdlmtwo +eight2one +14r +71fourzrmsevenseven9 +threesixmmcjzzml4 +stnmbsix41 +cztnnflpcl4txplfour +five6six4kxv +5oneqmmbnvgvbq6vsncbrjrsix7eightpzkhvrjz +kflckfgxfeightlr37fourfiveseven +9three7three +rkxbqnine7onevvqgzcvvjthreendkddfournine +fzzfstwo44vm +19648 +7fivesixhdxhlgmv9 +six9hzlctfiveonefour +66eightthree4nine +jcgk8three +tbctwonefive2eightsixbntmjceight +ninemrqkzsevengvq6 +rsmmpmrlmq92fourfour453four +6eightbmjhnpbgnccfninefonenineglkfgp +8onefive7kn +eightrgzfdksevenftbvkt455oneightnl +3vxtwogxpdhjmqskjc +shzvnlgvvvthreenkv14eightbcmjd +2sevenlbq +1zfjpz1mdfourstvj7zpfxxlqf +twogm22trvplbsk29rbjtvctqr +twoqpgcbskdgh2tktbbpnzll7twoxljpdhthree +5nineeight6 +936 +218ptffour +1clztnnsix1 +bsevengsxbpjmbg5eight +1cpeighteightpb +vrlnveight2twopxmtwo +fgrjr8six +5sevenspppgjtxbtqlzt +5sixczhncsix2qcqsevenfive4 +kgcdpqclsggzm79nine +eighteightone6sevensixthree +92eight7plhftxkntl1two +5dqrhhqrrgmvrqznbgx4three3 +twoone953cdkm5stzdbdh +heightwothreennzljtptwo94 +6sevensevenfoursix5nine +cnbslkngtk9five58xpqvgjpqrnpjnzbk +onebrcg1bnfivekftnzpclqxvhchloneightzrn +four855dpknm +4hkdseventggkffhrkvsixcrsqjsix9 +8seventwo +two9sixthree9cdrmqntmcv +525tg4h +five7kxrlmq1bzhdmhtgglmvzrtfbqqd3 +bnbbsbhlcbktsqlpq69ninesfxhq +gndxnlmnrmnk29qkfxfoursnnbvjtq +5bzppjrgcpk +2three79pmgtcgmtdf2fjh +sixmmpbmtznseven62 +4rrm +ztlthreesix28ninesix +j7fourfourfbrlxplk +zjhrqtqsix1 +4three6hhndrlszfrgphcbonenxfive +jmg8hfsxfsvdxz3four7jfbczjmdhbpn +39ptfzqjfpnpxrnf7eight +three6jrcrgpfxg8vxgk8 +57kvbczxn5eightfour +8xbdbrbpjp +sixtrhhl2tktvvmkffl5 +three6fgsjtmnine54sm5k +ninenine3stfpft2nine +one61onenrhmtwos +pzdq8 +pltd9sjdkrscxr25 +dzsldkmzd1 +vlvpfmz24sevenshcrvx389one +1rfvlnmfkdbmdjj +sixbzzbftqggn8zggtbcd +hzxzjhkvd5twofivedxfdlrdeighttwo +six9nlgcdznskrsb +sixrxkfhvsjxzbt4fivenineninenine +dsbmqpgmf8nine634two +fourknfzpthpf1 +two9twovbmldd +5zgnnrxtwo2two2 +fivezfvzfdxkmrbvtpdhqbmdhcthreedvlstmq28 +ppfqqq75seven954 +sgtjpsix3 +twospnc9cnchkzthreegj +3eightwoqs +goneightghmkgksqfk2two2six +sixthree6bjzpqlsbgq2rkbffxtmprpddkxv +rkv43 +bzfnbq8onefourthree4 +3mqvr +fiveninefflpllcqzonejqqbtwofive43 +tvoneightfour3three5 +mvhlv6bzbjggrsvvxh4dfcpmrnhnq4 +fcrsmfmpnmkfs3fivekblglhqmvfourchc7 +svfmfbdrgd81one4 +mf7threetwo8nine1 +qngfr4gnnxbszqzsixp +px5gfx7two5seven9 +4gp +8lxkgvpzxch6 +3mdgqrvtgnthqnhpxteightfour +onethree899btbpjnxxjhone +fnjdzx5vrzc +four5twofour +9fivetwo2 +threezlpsdhxvdlfpsvkxxnnine3 +hvnnq9two2fourpdjv +bvjkdg9four1 +2412 +threethreeszmhdndctj1eight8lcqtwo3 +cdnmjmxqrz6vrkkxtfour8cc +njldrqggdnfsix5 +9csxcksh6three697 +92four2sr32 +3jdpqdjjct44oneone75pjgkgv +576sreighttwosixxzqmj7 +twoscdxdlfddmfive54 +ninefiveznine33 +threenffnvx3 +916tpsgsxmtml8 +6five3 +fdztvpctnr5dmbjnrjslr +16four +4oneightk +three5fouronenm +threezrksvlbdb891zfbbcdrbpd7 +five821ndfftdbmbr3nine +ninehvdxftmgcvnkrlrvmmbb4nine +xkkzphgfv1two +3pm +ninetwobtjxdvnhv12 +fiverbkmfbx8fiveeightksjzphkrj23rdlrtnb +kseightwo2fivesix +5snpchthree3 +71oneone +6frxncksfxboneftdpvmnfdfxreighthrmnqc8 +two48mhgdtlp246four3 +993three8 +threenine7twohbmcrpd +9bpdccqbts +kptwonejntgcdqdfffour4twobvtxnhqkl7 +1637sevenfour +soneight6lbcrzdmhltpbkbjfivechxzfrqqgfeight +99five3hjvjrdmgl +qncqlreighthkfmbbfqx87five3 +7jqkdsfour +ninemmvcxlkcrg1 +mkdhgzcvmseven3onesnkhtxbgf7threestvjqn +nttgqsmsl4five1eighttwo9zg +one2ninefour5 +bdfbveightseven1lcrshdgxznineeight +qsnvsonezqhsjmfive9one +6kvdrgkgznf1cmklmxgnine6 +xkmzzdpknl661 +ninefoursix7gnbmzd37 +mmxmfnsrmt2bnhkmftxnjsix +fmhsrdtnrxlqgjttlgvmqxgzpl756sixllmdvblrvrrzkqgb +7xmppbvd976dqt87 +fourzdctfglzzf1xdbfmrbfeightwor +8thncgqzvr989lthreeseven +5qmrzeight169 +4qgvkmninegcsdgcthsp62onehczjhdxcgm +25tlppkmctwo2 +668four4 +rjbxtvfktchflstwo639one4 +seven6eight4onehfztk +five53 +nine33threethree3pznjbtxjmrrxm +19six +fivethreefivegxcqflqhjrn3fivehcn +vpbntqnpkjfninesix6341 +7eightb7 +bktffkqsx6fzvpnjhk +38jrjprtwo628 +77tplflrp7 +4one9one6 +pkdhkbxrbshccxgknrjgseven44 +49rthxdvlmeight +5twodhkpfn1 +znine2fbsmeighttwo7 +5ninexvmg +dbjbfmqtkp66 +mdsrdjdnxkzr3xfm +two9twofive3 +9kfivetg2five18 +6fivenine2 +2dlgpxsq7sixone6 +tnqxgjbnc9bhqbgtwodxssml +18sixcjthreetdtprgsix +65sevenfive9nine4seven +nine34fiveqjdqc +threetzvxrb5vspdhrmjcnhtrzkqhd4 +67nine8jrxt39 +443oneklzsrtwo4tbbvxblk +xp7fourseven +ktsrninemlldztwo5ghqfgh55 +five6eighteight7mtstgjlqmngzonetwonec +rmfourseventwothreedjtvf9 +rlsgqhhvcdvthreekzjdssslmsixfour5rxk5 +sgnfjqm4fivefiveone87nine +6twoonefive +sevenrftrnqrjs1 +bcfgjklzfbnineninefivesrpcqtwo4 +threek7seven1fxslmvnhmffqqvbfbhlceight +sixxzqz9fivethjgdv2 +nineonefivesixtcrjd5 +5645ptsjfrszgr8 +1threezkpgczxr8four3oneqm +tvlfrfcnlc56eight8ninesix7seven +7clvmrdvdgjg +7mcstlktwo +dlxlpchr3eight +3ninelrzgkhx85 +jlkqzonefourrvlptlxxgrthree4six +rxhpprsqtd982t +six4671nineonesix9 +eightsixtm9vngskjglgvrbsqgcmxczbqqvxqxfj +vxfmc1six1ninesixnine +39fivesixthreevmpm4 +xllclztxcxjskgfourlvggrvr25fourthree9 +31sevensixninedpfrvvfftc +three64ctshdpcsfdjth95 +fourgcqf8sixfivepsrdqvrld +5nine1qldrqhvfour +5three1three +6hjbgdqjtlppzoneninesevenqlmvgkq +eight1three6sixthree5two9 +17141oner +five1two7 +sxcfxblvfbtdtlkdpnineztnsfdkmeightvrr7fivejj +eight183krc8nkqk +sixthree38fourkgfbbv2sixsix +922threeeight4moneightsm +3threefive8bdzjs +onechvnhrfthreebqfive9 +8sixgkvzgnfkjrrxrxvbvgvx +meightwo1dnbbpzrxftwo8 +253lqt1bzfpqznz +klsgclc549rbksgrbbh56 +3xksqcrhdsthree +55nxbjvps3nbmf +7qzzfourtwo1688 +h5skqsrnnpxdone5fivefourkffrsblv +3fourfive2 +25stdpqvgmzg9qksix5three +fivenxhkvbscrxx1j4 +dtszrbcgpgxbh1 +fivefvrp159three +68mdjsggnbtwokmthtwo286 +xtwone7bkhjqkmmdkxvqtxfkpmckj5 +btwonetjkkdfqphr2gkknfz7one +ninejgnxcchjqsevennvdjvttnqqsix6 +395seveneight +lfrsoneoneeightfour6 +four9prvhcqdnrgjl +qhbkninefive73six8 +sixkqjtrs1hrmnt +5lmctnqtqc49eightnt +sixghthgcnpfeightseventwo3 +vvvjbvnjfeight41nine +9gkxpcrql9three4 +65seven4eightmjnh2gbjjstdgb +8four68seventhree +19924nine1lxnfzgt +fgjtbsfour4nine4vqfznznqxnsevenvzn +fiveone9bzshjmdvdsixxknhmmqskone8 +xqjzgmdmnfivefourthreemmksmdsix6cct +eightklfnlkb9 +rmtsdblmcghszsfgd66seven1bct +twoseven6 +psbfmmmrppdfm5ninetwosixnine +rkcgdnslc9pjtqvgdmbvpkbbksxgr +mxjpns69 +rspjpcv4fourthreesixfourninevlfive +2dgjgdn +66five8qxeight +five93 +six7twovssixsixztrmfdrrvgqtdhmh7 +32sqltqgoneightd +4five8tns1six +277 +pmrzrckf6 +8rglvpcttwo1twofive +fivethree644hrphp +fdpjb6 +dfkpmgxfgfmtklbffk4sevenfive +nhqfpnvpsqpffour6neightfour +threeseven9eight67three8five +txttqnnineonefiveninesixlbscpqp1 +three2sixtwotwo7smkmq5 +8bjzjrnpspnine5 +5three659fourfour +qrdrk7fouroneseven +three7threevhct +mpjpgfbt8five6fqjbghvbpcnine +7zonesevenzmlvfvzn +2hzldqdntffxhfpxlghf6threeninejrxngnjq +dfppvqcvthreessnnm65tqtn +56nine75rdkxdcmj +8twozvjkdltz4sevensixfive6 +vzpzllmbghcccksevenjgjghqjr98 +fgjsgxlh48sixg3three8 +4eightfbppqltgxttoneoneseven3 +six1eightddcthzd +fiveggljcppdeightnine5hsbfrtninenine +2xrdtzfnhpvpgone +982 +two7nine7eightnine4 +one431 +eight9fmbfqxgzlskgjrrksr8six +9zhvdllsszd +4pnkpxrgltkdbztlnz2 +4ninebkh6ninefiveh +five9ninevrzxhfnggfourfoursevensixlncsfdvrz +rqhjjxzeightnineseven7fnmbkrtqgr +8xfmqdone +pnszhd1trqb71gfhpjpq +9htfkgbxlht +sevenoneqgx29three5six +fourdlscbpbpb9four5jbdjzqqdthreerhqdsbb +five31sevennbmrbhtthreebzqxvthree +one4c +three38183threesix +6rtdclcbfbbdbeight1 +2one8xdeight +2sixsixtwo +nine3pcjthmlmtljkrzxcdxkbmgzneightzcmtwohpdpkvqg +9two81qlhsrnfpdksdkd +threejrgxc4seven26njlmtbheightwodjh +lrjzhghhpk342threeninejskdnjjltt6 +46threegj +ninedgpkqblftq2b3four +3951sixssgmjj3 +8jteight4 +three6mdvfkgrxcjmfoureightfour3 +hvbf28 +9fournine713six3 +four1seven +763twoseventwonine4 +ctpfmnsvcthree9sevencbqtjc3 +sevensqdhvxd36 +fourninergfmdxpdbt1ninefour +2kptonesixzpqrsqzhv +h4qcscfxfctjbqnff1sevengxvjjc3 +d8cnjksdf +hzcgnine35fcbxtlg8rjhzbjfkv +jdvoneightdpfvzvp758fourfour +four27jhrgqnrjnkzffour5 +fivetwoszrxz2fzfrbgqntjf +onergnqpl3 +ccfqnc5twothreefoureight +grgsgxsevenkvzfjppnzq2sztcfive +9two94onesix +nine7seven7 +eight36 +plgsevenvfljnqvtfq5two +threethxdbnz49two2vdxbpqtpb +cf9fkrbrvjhssptthree +one5lrcn3klrcphllmz9 +onesix6seven8tzgfdbm +964khvfxtrljs88 +trszhb48fmseven +tdfxvnhrzv8threesevenkgp +ninegnmjxzbtcb32four9mlpkbfqdxdkoneightg +sixnineeightnhlqfslb2v +one83fc7zs +pxfkljdbdqqqvnrfivefoursg5nine +2onevh +1fgjrsdlgnbmsbzsevenfive +3nine87pmsqqntwojtnrksdtwo +two59kltcxhzszhdtwo +6451 +sevenzscjhgpfgsseven7threeseven4threedlbtxtcvl +eighteight8sfsvhbkf9jgfrddx +qlvdplcqtrcj2eight4 +sixbcpxtjt4onetwothree69 +91fourrbblcl +twozvqbsx4 +twogfh73 +onesixljjrlonethree3rxtwofive +onefour62 +b7vfplpqnine5 +67dgbmmjsevenfivedktq +7foureighttwo4 +sevenctctvfg51tsbzqgcvpvslqb +mjkeightwo7eightsb6one5xzsix8 +151dht66 +93tkbs +29two +foursixtwo5gprqslprxkrbfbmsl1six5 +one3six3 +three66rbh82bgtfzsfrkhrv +2sixfivethreefiveseven +fcjttg4onesixtwofive +15seven54 +5kjdkr9htl +gclrsklbvkfbdcb9seventvdtdmmmksh52xkxtpmfpvk +spone7eight5xzjrlxrnzjtqgpdcgrsjn +vs3fourdkdlhx7rb +9ldxtdk3 +4dppnthreetwodvkhjjrqh1zbqxntvtxgchv1 +1sevenmsdrjgqfivevphqmxzghktwo6fdvkvqhj +tbptrcvxhs9qcdxcpvp +8five2ssrrhgtxfone +3clvbm2g961 +four2onegkhbdfive5vxvxvtxglg6hxrtlhzjh +kfhcmflznrg9qnkkxqcsm2vqqtrdg8tjkshzpnddvd +eighttwojfktjcrqthreepssfour39 +359nine2fivevvscbvggjhbnnzqtxfsbpb +vvshjlcfqt6qjvfjsix2tgsjbdxgppq1jmr +ninehhmeightcvqskvjptz2kdnhpptvkz54 +39threefourndztxcl +sevenfive7 +csmmpzfsix41 +9cgqxtpdxt2 +3mpzvlxrzvhtj +fourkqhzsjjjvx3six1 +52one +nineltplrl8tfzqmnqeight +sixfourdqrfvrvbvfzzgb6 +mqnxglzjk6qqhzksklvsmthreesixmvhmhbdkqpnxcsgvcsl +65 +zqconeone85three +rxnhdflsqdqglxdmfxlxponeseven4one +88nkgcglftwodfxfhzxbqdpfrqmtwonenf +jzoneight9htkkpszpcqvkmlvl +388xnq +9xhlrqnkjpthreedfknpmqqtwo +4onemfzjfvmhhfive3two5pjdcf +djqjglztxs5nineeight8jdzone +four35ninefourfivethreecnhntp8 +gxqxl6fourlfdtndgdql +fivenine6 +1pqctbpbbgrmgqfqbzbjjt6 +xzvjjfnfr28jblqseight +ctwone23 +6sevenqjtwo +8nineplhlmsgjvs1 +lmjgmltfivenine9 +8gxnnnjonesixtwotwo1 +2seven678cdxhkflhj3eightthree +djzninefour3one +vbqhjjhpzg86rkzdjzfj +eight1twotthreeqqlr +bkxseventhreezcjvdkxzksxrznp6four8 +five77xcvphzcnlfbgbxnqbhfrldg +71qxqdncxdjsix +eight6one6jnpspgmhngzrfneightzdnrdhj +xb9skhpnfjsmq +jxgtk618fiveone1zr +8dkdnbfr +3llplnp4dzdxfhbvbn7two +eighttcgrbhrspktwo6eightddxhqqbprrf +eight2mpmzsevenrcbmsqg2cxjvmblnqbqdjsl +seventwo54 +koneightsix22three +zdsnjr5vxrhkthkr8qmddrzclmrkprmvbll +fbkmfxncztwohjbfgkhgvcdkrpnc5 +ksprkgxkjnineseven3fivebjpqhrmbdtwo +fourpss5 +1three9fbnnrjcgllkvcs6 +oneone9kjchnfsv9ffcdspfive54 +26ninejctplmsgb +9ftfjrmvjblzqqmrdczpone3bphtmmkm +7lpssdtbc67mhnthree9cndbsthree +fourfour49four +nineeight8bzeight +128zpqftnxnqz2threettrhscsll +1xdtxcg4tkxtsnl +hmxbjczvgmcrd9mqsfivefourninethree +5hseveneighttwomgxmlmskr8 +zdtbtszzkbk5 +eight5nine6xthreefour +9rbfcnjztthree4v9vn +voneightqdtnrtc4 +86cnzxs2three5 +eight9seventhree +tjmrjgcfldqtbrvnzzxshxkrs3onefour +2rxplslzcglskjxgthk76cczdbxrp +sevenpdvsbhkknxqkqxfcz6bhmkxmhdbvhcvvhpmv49 +three1twotwopr2lctfjb +zrbrqmh87dmxzmtfvthreelsleight +34dcnd8eightwombx +two9xnqtcfgq8tsqzvd3three +nine5fq3 +eightsixfivemtcgzlbkheight4 +qlspgfndmx5twobtjgzgvzmcone +5zlldrzrffgggtwo648 +seventbqtkpfivel6 +hjqbmfnnqzmf4 +fiveqhdfsnjvqtwo6two +jftwone7 +4twolqvglgxcc +twoqjmgjtrrjjt1eightcpj +eight9sevenmlkpsbzmtnhdrkbmj +trrpdninesix8oneqxtrzf +5sixtsxqdbnczhbvmfkvkc +tvbf2 +sixtwonjssgpljqrxhlstfx4xbhqzlqktsixfour +kfxccb45tzsftztxjhgnxqsxknl29 +tworjdcgsgvsix6 +eightjbqfive26gfspjh3nine +2sqhleight7cfkhzrsevensevenfive +kzpzjcrl98sfive +sevenrsgtnine4pbgvrbcpf8 +25q3qkcxlvhrxdonednbtcrrvjlnngq +twothree4lffpxvfcgqrkvdgzdsdjxjsh +seventhree34seventwofive9ckm +three25skfkvqdmbmsixxgqx +three1eightthreesix4 +threeftjlv9 +6spbhfckxcdrxlcg6hxcfive6five +8drbfjrgzvs834slzhsbgrjm2seventwo +sixsevenfmrvpqbgx4ncrmvfkjx62 +lqfsslkmstwo7rgnqeightthreetnlnonehszkrghlnt +5onethreebxxfstvd +djchrbjcrddcqfourmnninesevenrdlpfxthr2one +three3threeoneninepcrjr1 +twothreernxmhmtbn2fourtccrqhqs +lzzdpfourtwo1six +two3one3 +zzcnprtjdr22286 +seven5qjlfrhj7seven8 +seven99 +mtztq6one37oneeight +mrfcssmzxpvcz2sevenfourfivelpzqkvvdxmmpmxqshskfnh +nine8rtx71 +1llzpvcdgmvoneonepksninefourthree +gbbvkcfive18two8twonineseven +2fivenztsix2nine +gjqnnr422seven4ppbsqdbpcfour +fourtwo5one7qfgpmmphdtl +pglzjrr4fivebclpf +slrrcqxxhtwoeightseven6 +dnknxxkbjplrkjone2threesix9 +htctqnkcmfqdxrzd9eight9seveneight +8sevenfiveninermlrrzpcdxkjkczhgpx6eightone +eighthnfxhrtssbmfxv6v +6fp539 +sixzmsfqjzpvxjkhfqcrbss7xgg15 +nine5ninevddknzczpxgzjx +jbcsf3 +jjbstlskzxc5nine +jlrvgcbch7tnpfjnczdsrgddrseven156fvdmfhtl +one89 +three52sevenlxxskf7gxh3gb +eighttwo59mqzdlqjdkkxgjhnktwoone +519six +1onemneightsixdlqx7 +7fgszpqcj +sbfjtrfvnv6four +qtwonedvkninercj8 +ntrnzldltrvtcsh8eight77sprgsvfdljthreecndckrzmjl +gtspn2 +54six6mkjznlb +sevenonethree3sbpjqgltv +four8two +xdzrskv3974mgvjlhzbkddhcxzzxv +6three1mtlxshtxfpnine +14threeseven6 +37threeonefpfgmz9 +three3sevensixeightfive1nkjtndgrd +2dsmr7qhmnrgbsrvjmsbctwovb +gkdsnnqzlzdvcgthree3fivedzvpcfive6one +3vkftsclsxtxmsjeight +sglkcnzgz4mnhgblxqgdv69 +tpcjb4one73s4 +sevenrvhhxjcfqgs32six1pjvltwo +8zmktmxkbc5mpgrtnxmnp35fttpmdbhfm +1sevengeight +hghs1sixvvjpmlcponethree8kckgkf +gkbpflqvh1cbddlvdkzhfmzcfourkmckngsevenxkjknplzv +5sevenfk5qgfshtqseven155 +dfjdtxjxb8fivefivebjtbggkdlpxlmnrcdt4jrrpnbtvlthrhmczn +2fivefivejxhh6 +41threehtwo4nhzdn2 +2fzngnxvvpjrqxk6 +53sdthreeninexrfone +6qmrthlzgqeightrzrdglxvscgr +snkmhszcbmthree5threejsvkpkknpeighthbv +cmgb9seveneight +5djnine3bcffxgjbrhxbfhgthxb +1flqjgsf2ms +fivefive7onefour +threeeightksmhj94jvfvqrsgqrsevenj +jttgbfmh9468ddshrxnjthsix3 +25four +9sixseventhreefiveninefive +eight5twoqrfgpkbdfc3qxfmchrjx8kpp +nineftnvllx1rjzkkt +gmeightwothree1fgfivejldgmt +nine966fivethreeninecpmgsxsxz +77bfhphxczdg2eight +89hcgjjtchsix +1onexps1 +3fourkgm +hjgnbninevxdtpnct7bmstnczzteight23 +twoone1qt8 +43744 +fourtfgn2 +sixppztkbvllkltbs51xknnfive +tqxoneight5 +twong3zdrbpqnb +fivebcrxk198three +435sfddjvfg56vkddkzhhj3 +qcnhlbzmbld2fivebsix +zfsrtwothree8 +nineeightfivetwomcjm2seven1 +3gbnxlzxhvzzgfjjhf44fgbccpthhnkpht +3ccmrkbfour68ninetwonebz +sevenrccgdjrqj9one +fourzgdfbsnlb66txclxgp7 +jmzlbtgbtl8three +6nine32pr +sixffcsmhlfiveklbmgj8nine +psmjrt65tppjqeightzqvglglnine1seven +fourninehhzh8seventwoone +48two2vzbrl +mdlzptrcsix3three9 +sevenlgr3t +7sevenpphjhvdhkheightwojv +seven3756 +four85 +4twoonettmxjncsqmgsrxsf +fivesix6twofvzqxpphzmlkj +eight1twojrzspbfbzkftwo +5eightthree5 +31ninecjnsevenjvbsvpphpxxkcnine9 +nine5vnine486vrhbkgl +sevennineeight97qpdlfbskz7sfbtm +onernqbxt8twoone +gftjrbmkmngtshchbgfc1nvvt5 +four5dgvsixzhlxnnmjhkhkljcfdpeight3 +ttmfdxhd3ninekzbtsixnfmvfour +8pfkhxhmh8xkghgdk +nhs4threemxjpbgsix1s +ghtwoz1 +sixdthree7vlfbpzcm1ndbbczvc +ninetwo183 +twofxsdt36fcthreethreeseven +7grvvzqhcbeightwopx +twoninevknhnkgdmhmlbxkeighttwonine4 +4fourdmclrghj2 +sevenmtgvr8four76fivekdqbsmmtq +klgpeight5sbknbhvsixfive6 +2vddxlzfpsrqsbsixlgrfnhone +jxfhlzcp6qctpqhb1 +eightd1162jsfcsplrctwogcpzlhqf +one4four7xx5 +threebqmzstphclb5fiveninethree +bkxfxxms6eightwoxz +nineeight4four +sdsgszdznng4sctkfiveszkdknqjf8 +vtzmnllvvhrcfdlxcxxlqvzst1 +htzxcxpvqj91sevenxrggdtjzbrgcv +ldcnbzstq4ktzdxgmcl +twohshbblseven4grzpdtfmjn13cmg +cktjnhdnine1three9mjqvnjtkseven +891ninesevenxbdjs +kxjpngdtwomxttdqcdkhdj686sixl +hsninefourcxfj3five3eight2 +6eightgkkr1one +658one +zqgrxfourfour8 +twobbnfkdtb9five21zcfiveoneightjgt +79jsm55twonine5 +eightftk2two +eightbjbvqscs5pvmb14lgvgfv +four4four +qmzheight5hgfourkgtqfhjfournine3 +twofzdqtvssx2 +1fivefivesixsevenone47 +xhrjffnine8 +oneseveneight72fqgzscqt5 +nine7fours58 +three2fourseventhree +35ninesix +qgjsrxgqb5 +fiveqghjjvjthree4eightqfgrhblkjtwo +9mvcm +96fourqzdsix +vbzqmmzbvrbxltvlfmcpfvnddmgsbb6four7onegn +three3qnlxmkhpctwosevenfourvmqmqlgfrsn +2seven5one2six15vgnqzpggn +sixljtvqzlh1 +45onesix +foursix44eightseventhree +djsix84rnx8z34 +1mkgthree8two9956 +psgnl6six5seventwoone +546cfgr2three +thtpczmkskptzn9pqzncp +31threeninesn7xhqvrsv +threehmjpvctfhnmhs57ninepzfvq +teightwothreesixdzqhvljk84nineninesevenb +gvptkx9rlsnmtwoonesqfxmzkv +7twojszdrxcxfour +3eight617npsbbrpkjtzsmeight +3sixqntvpttddsixninemtpb4 +1onefiveseven2fourseventwo6 +67foursevensixsix2 +one7qeightonehckxhxdfjjzsrdnj +38onehzjxg +4splxs1zfvfksevenkrzfive +fourfournkcj9 +1ljmbhcpttjnine +2xnvfpdgccxfivellztmtpnc +ljvlxplhxfsjqv6sevennine44nine +qdonefourlnrzrgthbt1 +twothreehvvhsxzqz1chvbcsxtll +82vmfjbvssmlgk2dbsljgvd3 +xzfbfmbbxfeightgfz3lvzpzbpmv1four +oneeightfd5ninetwo +ghddk7six7xqmglkvnqonesix +six1eight +7five5ptkbvvvfive +3hftgthreehcfrsnl1fivetwo +7six12onebhpz +mkqjv8bzdnt9sevenfourtwo +five3mzgqnm +sixtwocbjxlgvp1twoseven +dkfmbzmvxseven971 +bninetwojnsnkc7 +ninekzcpfive4five3phz3 +eight8143 +eightrzdmxzb8eight6 +5pdjm22ninej37two +fourtwo8fivetwosixthreetwo +ncttc71fourfivejpjzcgzpj4 +5882three8glcvgnfhscbtmnqmnh +ngxkxtwo9pltbbmxrknvjheighttwo53 +twoninenpqqqgsbsq3fjdk +eightsevensixhtsjvxjc8jxftgnptgqsixvcncglzlgq +sjxtcnt8gpeight7cbgffmgqksix +fdsn9threenineninetthree37 +19rrfdqtpmonetqjdcjtxlhkptccjn6mtztqhvvtqftbv +vrhprdjsfour28p4 +eightfiveeightninevdvnmbv58vrs +qdzhzrhlfl7hhxqzxqdxeight +svnbzgbhxjcx26xclfgs +5lcggbhzrmnknine83txffvcdonecrqvvjf +six5fpncsbbqbbcczcmbgrqmndxmrxloneone +1one6 +88gctsmp7eightrvshklprtm +xf874onehhcknx +sevenvvncrhvxjxnzsftkfhsktwo3eightfour +8ngprdqfour +98fmrxpxzzbrjpxzqdxmv +2zbxzsthreefivefhdbhvjjxv6btwonef +jzkjcvpn924qjcbr97h3twoneff +foursix3 +9pmtdjvrxjrponetjlxbdzbvrcjtc77 +52twoeight2fourh8 +kpzfztlzlkdprbmrhsjcxfzsbch31 +4fivebtfjmfive6seven +ccttxjmheight6twothreelnjmfoureightnvcvpmpc +6twoz1dzv95 +threelsmgdnxcsevenqr4xrtthzgkqxsrdssmjqv +fourgpvjxdg4qpvfivefive8nine +9mncmnhrclsq +9zjfmctz +pndgptggnsthree8xlcctvpsix6three +98npgrlkqmcninethree +fivexp6fourdpckhqpcxczrfbr +six2xdgsqdpsbmgftzvqhnjg +7ninepqheight2eight7g +2zrsevennlpcljnp +twoonethreevvpfp1jrhsevenfour +threebzmggv7bjm6cczkbsronetwo4 +three1foursgvfdrrqmk4two6 +onengzkkjsxsjlxxxthpd7xfcvkthreefour +sixnine5sixeighthlvmf +63gkmbsdc3fourmgrjhrlbqgcfxf +2bmldthree7skhhpxfonenineone +b6seven7 +seven39 +twoffxbsgpcxctmmvb4kdhn89 +seven1fmgtseven +ninegxbdmztzzbqq6lgcvsbhzplqt +7twoonev +24nine +tvjmbzlsjtrtdhdlvnffmcfoursix6sevenonebvq +5jpntjsthree1threetkbsh7 +sixone423fourqnczdxcpmsvjpzhl +33zdfourseven3 +77lltwo5nineseven7djjmdqkqfd +4xfnpfbtdl7 +two5ninejbrfrsbrsvzfivenineseventwo +89znjldjptdnfkeightkpcxdxcc3bkmfhtzkkh +qlkxd1rv44qlhhpjrninetwo +6l2rfscvcgdm7 +rhtsrbrmlnfvseven1eight23dd +7xcglznxrjzsmhqnkqjhbjqxnjpjx15six +fourfiveq1vcsnnsxkmrcjscn4sevendbbtjh +6qcvjplvnine91rfjk51 +jmdsgfxd5 +tlzpvtsvkdsixtwo95 +8threeeighthvhlqss +threetpxxlmfrhpf15 +4twoeightsix +rg8nvrtzxjvfddkeightwofzs +tggqninemk1 +mlchhftqkxtbhfpjsixnine817 +231rpkxcvcz5fcztnqskqtwo +five9hhrtmp9twosixthreeeightv +9threeschsm17 +hhreightfour171dtbmhzhhjb9fgbg +bhgp6 +fourztzlhdr2hbdlv8fivenine +fourseven8seven +eighttwo8eight +two12 +threenine76ndvklb +twoseven9jxfcthreecnrpvglksc +84fivehmf +jpgbtnrsb15eightgdtqmk +34two8eightbxqvc5nine +four4hsgjmtbfrvfivenine +threecfcx8ninefive3xone +cvhtlnlnhh71 +four9sevenonenine9ninejlgmtvxmxseven +vttchshfgfpdbmpmp338 +nfcdnhq6nineeight79 +rgltnqzrzfqdjsfrhzmfivetwogklxqdhzbjtwo5three +five3n69fiveninesixtwo +nfhheight12clcqcnpdbz6nineseven7 +eightgxtmstbthreedvrqllvp1ljqstbjdhcmbmbeight +two26four7three +6rtninethreefive +vhnqgdzzbxr9two7mdjzsx3lf +twothreepzxljpd6sixcmsxkcqkfive +6threesevensevenjzkcqthfivegmjvstrsix +five7fivetwofour +onesixseven767 +36onehxdpmcqxsfbfive +2hdvqrlhs5six +pjfcjrnjnk9four99nineskshccmmnvxzvhvqmcprkdqvhhk +4gronexqnzdfthreejgqt +kvrsixtwofive2 +eightfourone4hone +cgbjtdbvptworbcz3 +jpgmhfour1 +ngbgjhlstwokxc8onejlhczxvnjbrkqzdl +chbmqrz3fourthree +rgvmkpeightqdssbcgf9fivefive +5vgrscgshtbfgbljt5 +pxgq5kffxbdjgq5cjnpzfdt738six +meightsvfb47xcdfkhf5 +clzqdc4five1onexfxlxnltfourfour1 +fivesix3threeseven +tworgklxh1threefourcsrsbj5 +3fivepdppjlmmb6fkgrcbldbxsdjpbvbqgpj1nine +9clvlvsckdmjsbxzrmrhfour +fourlptwofqspctl913 +28foursevenrfjfive5qrfsl +gfhmkfln2jcqttonethreetbmcdhhvbnmqdgsbrrmpk8 +eight35qvkxtwo3fivevfive +26fivegpcqqsjr7five +three1seven4 +9fiveonevmxhtndtfzmnxvtjkmr51six +64vgrgtwofour +four9one +nxjtdt2three1three96lfzglzcfour +355six +9lvqslrvdrd8six +9threetwo35six +two57 +phpkcmfxvt7gphd1qglpmckhnj +sixthree1ffrdbsix4two +spbscvjfl8vvkpjkshkx3 +5nnjdbjj3 +bmmqrrkdcfbctmsk124eight9one +4rxdpvqlhn +seven13glpzfknqtxdqjq3qblzcjvx9 +8bnkbzszkxkrrfdmcstvfvp +nndndjrs1qd1421 +twovn9four8five +eightrc1 +ltjvtcqfzdfourseven8kvcx43 +vn6ninelr8 +2seven1 +7rldpqrfoureightthreesfhz11six +56fourkmvl6threegzfqnlrlz +8mkpcsnzmknmzpjppf8two7 +bzgvzcpkqxmbxcqsix4qjzt28eightwoj +threesixxqkshhnine7njtvvxfmjl8 +5seven6vqcd62sixone +three552 +hsslkhbd88zjhqvgtzpfour1 +oneone96fvjbmcnzrr +pspndcdtctwo6 +v3one9 +fivefournmrfrzghdh7twoxmpgkps772 +vdkqxqnsthreefive25 +kgjsevenczqrqf14pjchtfbnnninexhgn8 +lqkhzjzm3six1one3 +1three3l61seven +1flsfhznl +r8hnbpbtrzkstdg +hhrmnkktv7seven29fourpvjceight +2mbft +954five9fivegbmlz5 +dshbfdqdjjgtxffjmllgvxjfrstgldgdxjsfxbone9tgseven +fourseveneighttdgghnfive7pchxddgggcq +8zx5seven7pffldzjhdb8 +bpqslhkt33sixnlxckbbr2 +xqmxvjcplh4seven +jd9zxmz2two1kvsghkvkpz +9blk3 +6rjvmrjk46 +onetwo6ninehdrlnxgbc +6drvnkssqzv5jfnineseveneight +sevenmvxlzmtwox49one1 +8fxnnjr18fivefcf +five98sixkblsvns7mgttvhhz +85qkkg463lxdhzdtllqtv3 +fivethree5eightfivessrnhsmdrnvssxfgxmsix +xgmqjone7j +pkclcg54 +dvllcqqghh891pdlqnbtb6183 +2qbnqkgncqrvlfntwo +seven7qdfzfpfivepnbhrqx48 +682sixqtwotbgnsspzqcntlrhpzcq +2sffrxkgmsixfivetwokfvnlhz +sv9klzvnzsgjmoneseven +bzbppxbdpxs9 +68ninetwo99four5grdrrkpr +mtfcscprzkeightfzdbhdndqh1njdfourtdtflbfjrth +8nvdtbrfrvfivesixtwodzxfhgpzlk6cgkbr +3slmzvnine5fm +eightone16nine +kdzrjbh2txzz5hbone96one +17pgtwofl41 +eightoneqjvzv3 +fivetwocrhmvxqkvbeightfive1qzcxvds +2htzsvdhvqvdjv diff --git a/2023/day1/input.txt.h b/2023/day1/input.txt.h new file mode 100644 index 0000000..3aae80e --- /dev/null +++ b/2023/day1/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2023_day1_input_txt_start __asm("_binary_2023_day1_input_txt_start"); +extern uint32_t _binary_2023_day1_input_txt_end __asm("_binary_2023_day1_input_txt_end"); +extern uint32_t _binary_2023_day1_input_txt_size __asm("_binary_2023_day1_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/2023/day1/sample1.txt b/2023/day1/sample1.txt new file mode 100644 index 0000000..7bbc69a --- /dev/null +++ b/2023/day1/sample1.txt @@ -0,0 +1,4 @@ +1abc2 +pqr3stu8vwx +a1b2c3d4e5f +treb7uchet diff --git a/2023/day1/sample1.txt.h b/2023/day1/sample1.txt.h new file mode 100644 index 0000000..e009aeb --- /dev/null +++ b/2023/day1/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2023_day1_sample1_txt_start __asm("_binary_2023_day1_sample1_txt_start"); +extern uint32_t _binary_2023_day1_sample1_txt_end __asm("_binary_2023_day1_sample1_txt_end"); +extern uint32_t _binary_2023_day1_sample1_txt_size __asm("_binary_2023_day1_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/2023/day1/sample2.txt b/2023/day1/sample2.txt new file mode 100644 index 0000000..41aa89c --- /dev/null +++ b/2023/day1/sample2.txt @@ -0,0 +1,7 @@ +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen diff --git a/2023/day1/sample2.txt.h b/2023/day1/sample2.txt.h new file mode 100644 index 0000000..8580a04 --- /dev/null +++ b/2023/day1/sample2.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2023_day1_sample2_txt_start __asm("_binary_2023_day1_sample2_txt_start"); +extern uint32_t _binary_2023_day1_sample2_txt_end __asm("_binary_2023_day1_sample2_txt_end"); +extern uint32_t _binary_2023_day1_sample2_txt_size __asm("_binary_2023_day1_sample2_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/2023/day1/solution.c b/2023/day1/solution.c new file mode 100644 index 0000000..323ba25 --- /dev/null +++ b/2023/day1/solution.c @@ -0,0 +1,11 @@ +#include + +int64_t _2023_day1_part1(const char * input, int length) +{ + return -1; +} + +int64_t _2023_day1_part2(const char * input, int length) +{ + return -1; +} diff --git a/day1/input.txt b/2024/day1/input.txt similarity index 100% rename from day1/input.txt rename to 2024/day1/input.txt diff --git a/2024/day1/input.txt.h b/2024/day1/input.txt.h new file mode 100644 index 0000000..af7650b --- /dev/null +++ b/2024/day1/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day1_input_txt_start __asm("_binary_2024_day1_input_txt_start"); +extern uint32_t _binary_2024_day1_input_txt_end __asm("_binary_2024_day1_input_txt_end"); +extern uint32_t _binary_2024_day1_input_txt_size __asm("_binary_2024_day1_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day1/sample1.txt b/2024/day1/sample1.txt similarity index 100% rename from day1/sample1.txt rename to 2024/day1/sample1.txt diff --git a/2024/day1/sample1.txt.h b/2024/day1/sample1.txt.h new file mode 100644 index 0000000..91a72cc --- /dev/null +++ b/2024/day1/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day1_sample1_txt_start __asm("_binary_2024_day1_sample1_txt_start"); +extern uint32_t _binary_2024_day1_sample1_txt_end __asm("_binary_2024_day1_sample1_txt_end"); +extern uint32_t _binary_2024_day1_sample1_txt_size __asm("_binary_2024_day1_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day1/solution.c b/2024/day1/solution.c similarity index 92% rename from day1/solution.c rename to 2024/day1/solution.c index 265a630..242ec42 100644 --- a/day1/solution.c +++ b/2024/day1/solution.c @@ -25,7 +25,7 @@ static int parse_input(const char * input, int length, struct list * list) return i; } -int64_t day1_part1(const char * input, int length) +int64_t _2024_day1_part1(const char * input, int length) { struct list list; int list_length = parse_input(input, length, &list); @@ -42,7 +42,7 @@ int64_t day1_part1(const char * input, int length) return sum; } -int64_t day1_part2(const char * input, int length) +int64_t _2024_day1_part2(const char * input, int length) { struct list list; int list_length = parse_input(input, length, &list); diff --git a/day10/input.txt b/2024/day10/input.txt similarity index 100% rename from day10/input.txt rename to 2024/day10/input.txt diff --git a/2024/day10/input.txt.h b/2024/day10/input.txt.h new file mode 100644 index 0000000..1a0ed2b --- /dev/null +++ b/2024/day10/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day10_input_txt_start __asm("_binary_2024_day10_input_txt_start"); +extern uint32_t _binary_2024_day10_input_txt_end __asm("_binary_2024_day10_input_txt_end"); +extern uint32_t _binary_2024_day10_input_txt_size __asm("_binary_2024_day10_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day10/sample1.txt b/2024/day10/sample1.txt similarity index 100% rename from day10/sample1.txt rename to 2024/day10/sample1.txt diff --git a/2024/day10/sample1.txt.h b/2024/day10/sample1.txt.h new file mode 100644 index 0000000..532973d --- /dev/null +++ b/2024/day10/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day10_sample1_txt_start __asm("_binary_2024_day10_sample1_txt_start"); +extern uint32_t _binary_2024_day10_sample1_txt_end __asm("_binary_2024_day10_sample1_txt_end"); +extern uint32_t _binary_2024_day10_sample1_txt_size __asm("_binary_2024_day10_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day10/solution.c b/2024/day10/solution.c similarity index 95% rename from day10/solution.c rename to 2024/day10/solution.c index ce13c55..3c8f16b 100644 --- a/day10/solution.c +++ b/2024/day10/solution.c @@ -87,7 +87,7 @@ struct rating_score find_trailheads(const char * input, int length, return (struct rating_score){total_rating, total_score}; } -int64_t day10_part1(const char * input, int length) +int64_t _2024_day10_part1(const char * input, int length) { int stride = parse_stride(input, length); int height = parse_height(input, length); @@ -98,7 +98,7 @@ int64_t day10_part1(const char * input, int length) return rs.score; } -int64_t day10_part2(const char * input, int length) +int64_t _2024_day10_part2(const char * input, int length) { int stride = parse_stride(input, length); int height = parse_height(input, length); diff --git a/day11/input.txt b/2024/day11/input.txt similarity index 100% rename from day11/input.txt rename to 2024/day11/input.txt diff --git a/2024/day11/input.txt.h b/2024/day11/input.txt.h new file mode 100644 index 0000000..70c7f21 --- /dev/null +++ b/2024/day11/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day11_input_txt_start __asm("_binary_2024_day11_input_txt_start"); +extern uint32_t _binary_2024_day11_input_txt_end __asm("_binary_2024_day11_input_txt_end"); +extern uint32_t _binary_2024_day11_input_txt_size __asm("_binary_2024_day11_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day11/sample1.txt b/2024/day11/sample1.txt similarity index 100% rename from day11/sample1.txt rename to 2024/day11/sample1.txt diff --git a/2024/day11/sample1.txt.h b/2024/day11/sample1.txt.h new file mode 100644 index 0000000..a51da50 --- /dev/null +++ b/2024/day11/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day11_sample1_txt_start __asm("_binary_2024_day11_sample1_txt_start"); +extern uint32_t _binary_2024_day11_sample1_txt_end __asm("_binary_2024_day11_sample1_txt_end"); +extern uint32_t _binary_2024_day11_sample1_txt_size __asm("_binary_2024_day11_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day11/solution.c b/2024/day11/solution.c similarity index 96% rename from day11/solution.c rename to 2024/day11/solution.c index 4e79e91..a066850 100644 --- a/day11/solution.c +++ b/2024/day11/solution.c @@ -161,12 +161,12 @@ static int64_t solve(const char * input, int length, int max_depth) return sum; } -int64_t day11_part1(const char * input, int length) +int64_t _2024_day11_part1(const char * input, int length) { return solve(input, length, 25); } -int64_t day11_part2(const char * input, int length) +int64_t _2024_day11_part2(const char * input, int length) { return solve(input, length, 75); } diff --git a/day2/input.txt b/2024/day2/input.txt similarity index 100% rename from day2/input.txt rename to 2024/day2/input.txt diff --git a/2024/day2/input.txt.h b/2024/day2/input.txt.h new file mode 100644 index 0000000..3d9a1d3 --- /dev/null +++ b/2024/day2/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day2_input_txt_start __asm("_binary_2024_day2_input_txt_start"); +extern uint32_t _binary_2024_day2_input_txt_end __asm("_binary_2024_day2_input_txt_end"); +extern uint32_t _binary_2024_day2_input_txt_size __asm("_binary_2024_day2_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day2/sample1.txt b/2024/day2/sample1.txt similarity index 100% rename from day2/sample1.txt rename to 2024/day2/sample1.txt diff --git a/2024/day2/sample1.txt.h b/2024/day2/sample1.txt.h new file mode 100644 index 0000000..cbc6dee --- /dev/null +++ b/2024/day2/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day2_sample1_txt_start __asm("_binary_2024_day2_sample1_txt_start"); +extern uint32_t _binary_2024_day2_sample1_txt_end __asm("_binary_2024_day2_sample1_txt_end"); +extern uint32_t _binary_2024_day2_sample1_txt_size __asm("_binary_2024_day2_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day2/solution.c b/2024/day2/solution.c similarity index 93% rename from day2/solution.c rename to 2024/day2/solution.c index aa39937..bd1733d 100644 --- a/day2/solution.c +++ b/2024/day2/solution.c @@ -65,7 +65,7 @@ static bool report_safe(struct report * report, int skip) return true; } -int64_t day2_part1(const char * input, int length) +int64_t _2024_day2_part1(const char * input, int length) { struct report report[1000]; @@ -79,7 +79,7 @@ int64_t day2_part1(const char * input, int length) return sum; } -int64_t day2_part2(const char * input, int length) +int64_t _2024_day2_part2(const char * input, int length) { struct report report[1000]; diff --git a/day3/input.txt b/2024/day3/input.txt similarity index 100% rename from day3/input.txt rename to 2024/day3/input.txt diff --git a/2024/day3/input.txt.h b/2024/day3/input.txt.h new file mode 100644 index 0000000..45af962 --- /dev/null +++ b/2024/day3/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day3_input_txt_start __asm("_binary_2024_day3_input_txt_start"); +extern uint32_t _binary_2024_day3_input_txt_end __asm("_binary_2024_day3_input_txt_end"); +extern uint32_t _binary_2024_day3_input_txt_size __asm("_binary_2024_day3_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day3/sample1.txt b/2024/day3/sample1.txt similarity index 100% rename from day3/sample1.txt rename to 2024/day3/sample1.txt diff --git a/2024/day3/sample1.txt.h b/2024/day3/sample1.txt.h new file mode 100644 index 0000000..0914b30 --- /dev/null +++ b/2024/day3/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day3_sample1_txt_start __asm("_binary_2024_day3_sample1_txt_start"); +extern uint32_t _binary_2024_day3_sample1_txt_end __asm("_binary_2024_day3_sample1_txt_end"); +extern uint32_t _binary_2024_day3_sample1_txt_size __asm("_binary_2024_day3_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day3/sample2.txt b/2024/day3/sample2.txt similarity index 100% rename from day3/sample2.txt rename to 2024/day3/sample2.txt diff --git a/2024/day3/sample2.txt.h b/2024/day3/sample2.txt.h new file mode 100644 index 0000000..17a3c67 --- /dev/null +++ b/2024/day3/sample2.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day3_sample2_txt_start __asm("_binary_2024_day3_sample2_txt_start"); +extern uint32_t _binary_2024_day3_sample2_txt_end __asm("_binary_2024_day3_sample2_txt_end"); +extern uint32_t _binary_2024_day3_sample2_txt_size __asm("_binary_2024_day3_sample2_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day3/solution.c b/2024/day3/solution.c similarity index 95% rename from day3/solution.c rename to 2024/day3/solution.c index 224b7ef..e6df653 100644 --- a/day3/solution.c +++ b/2024/day3/solution.c @@ -89,7 +89,7 @@ int parse_input(const char * input, int length, struct instruction * ins) return i; } -int64_t day3_part1(const char * input, int length) +int64_t _2024_day3_part1(const char * input, int length) { struct instruction ins[1000]; @@ -104,7 +104,7 @@ int64_t day3_part1(const char * input, int length) return sum; } -int64_t day3_part2(const char * input, int length) +int64_t _2024_day3_part2(const char * input, int length) { struct instruction ins[1000]; diff --git a/day4/input.txt b/2024/day4/input.txt similarity index 100% rename from day4/input.txt rename to 2024/day4/input.txt diff --git a/2024/day4/input.txt.h b/2024/day4/input.txt.h new file mode 100644 index 0000000..858a1ee --- /dev/null +++ b/2024/day4/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day4_input_txt_start __asm("_binary_2024_day4_input_txt_start"); +extern uint32_t _binary_2024_day4_input_txt_end __asm("_binary_2024_day4_input_txt_end"); +extern uint32_t _binary_2024_day4_input_txt_size __asm("_binary_2024_day4_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day4/sample1.txt b/2024/day4/sample1.txt similarity index 100% rename from day4/sample1.txt rename to 2024/day4/sample1.txt diff --git a/2024/day4/sample1.txt.h b/2024/day4/sample1.txt.h new file mode 100644 index 0000000..386b827 --- /dev/null +++ b/2024/day4/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day4_sample1_txt_start __asm("_binary_2024_day4_sample1_txt_start"); +extern uint32_t _binary_2024_day4_sample1_txt_end __asm("_binary_2024_day4_sample1_txt_end"); +extern uint32_t _binary_2024_day4_sample1_txt_size __asm("_binary_2024_day4_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day4/solution.c b/2024/day4/solution.c similarity index 97% rename from day4/solution.c rename to 2024/day4/solution.c index 6476089..2366c77 100644 --- a/day4/solution.c +++ b/2024/day4/solution.c @@ -121,7 +121,7 @@ static bool offset_match_cross(const char * input, return match1 || match2; } -int64_t day4_part1(const char * input, int length) +int64_t _2024_day4_part1(const char * input, int length) { int stride = parse_stride(input, length); int height = parse_height(input, length); @@ -149,7 +149,7 @@ int64_t day4_part1(const char * input, int length) return match_count; } -int64_t day4_part2(const char * input, int length) +int64_t _2024_day4_part2(const char * input, int length) { int stride = parse_stride(input, length); int height = parse_height(input, length); diff --git a/day5/input.txt b/2024/day5/input.txt similarity index 100% rename from day5/input.txt rename to 2024/day5/input.txt diff --git a/2024/day5/input.txt.h b/2024/day5/input.txt.h new file mode 100644 index 0000000..5c47f19 --- /dev/null +++ b/2024/day5/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day5_input_txt_start __asm("_binary_2024_day5_input_txt_start"); +extern uint32_t _binary_2024_day5_input_txt_end __asm("_binary_2024_day5_input_txt_end"); +extern uint32_t _binary_2024_day5_input_txt_size __asm("_binary_2024_day5_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day5/sample1.txt b/2024/day5/sample1.txt similarity index 100% rename from day5/sample1.txt rename to 2024/day5/sample1.txt diff --git a/2024/day5/sample1.txt.h b/2024/day5/sample1.txt.h new file mode 100644 index 0000000..5f9a400 --- /dev/null +++ b/2024/day5/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day5_sample1_txt_start __asm("_binary_2024_day5_sample1_txt_start"); +extern uint32_t _binary_2024_day5_sample1_txt_end __asm("_binary_2024_day5_sample1_txt_end"); +extern uint32_t _binary_2024_day5_sample1_txt_size __asm("_binary_2024_day5_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day5/solution.c b/2024/day5/solution.c similarity index 95% rename from day5/solution.c rename to 2024/day5/solution.c index 03dfd02..bb779e3 100644 --- a/day5/solution.c +++ b/2024/day5/solution.c @@ -116,12 +116,12 @@ static int solve(const char * input, int length, bool correctly_ordered) return sum; } -int64_t day5_part1(const char * input, int length) +int64_t _2024_day5_part1(const char * input, int length) { return solve(input, length, true); } -int64_t day5_part2(const char * input, int length) +int64_t _2024_day5_part2(const char * input, int length) { return solve(input, length, false); } diff --git a/day6/input.txt b/2024/day6/input.txt similarity index 100% rename from day6/input.txt rename to 2024/day6/input.txt diff --git a/2024/day6/input.txt.h b/2024/day6/input.txt.h new file mode 100644 index 0000000..760804d --- /dev/null +++ b/2024/day6/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day6_input_txt_start __asm("_binary_2024_day6_input_txt_start"); +extern uint32_t _binary_2024_day6_input_txt_end __asm("_binary_2024_day6_input_txt_end"); +extern uint32_t _binary_2024_day6_input_txt_size __asm("_binary_2024_day6_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day6/pos.py b/2024/day6/pos.py similarity index 100% rename from day6/pos.py rename to 2024/day6/pos.py diff --git a/day6/render.cpp b/2024/day6/render.cpp similarity index 97% rename from day6/render.cpp rename to 2024/day6/render.cpp index b188e9a..7726114 100644 --- a/day6/render.cpp +++ b/2024/day6/render.cpp @@ -152,9 +152,9 @@ void a_press() } extern "C" -void day6_render(const struct font * font, - const struct glyph * glyphs, - ft0::data_transfer::data_format * maple_ft0_data) +void _2024_day6_render(const struct font * font, + const struct glyph * glyphs, + ft0::data_transfer::data_format * maple_ft0_data) { return; diff --git a/day6/sample1.txt b/2024/day6/sample1.txt similarity index 100% rename from day6/sample1.txt rename to 2024/day6/sample1.txt diff --git a/2024/day6/sample1.txt.h b/2024/day6/sample1.txt.h new file mode 100644 index 0000000..bcf2fea --- /dev/null +++ b/2024/day6/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day6_sample1_txt_start __asm("_binary_2024_day6_sample1_txt_start"); +extern uint32_t _binary_2024_day6_sample1_txt_end __asm("_binary_2024_day6_sample1_txt_end"); +extern uint32_t _binary_2024_day6_sample1_txt_size __asm("_binary_2024_day6_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day6/solution.c b/2024/day6/solution.c similarity index 98% rename from day6/solution.c rename to 2024/day6/solution.c index 9b48a35..8a75aa7 100644 --- a/day6/solution.c +++ b/2024/day6/solution.c @@ -121,7 +121,7 @@ void state_init(int part, day6_state.guard[0] = guard; } -int64_t day6_part1(const char * input, int length) +int64_t _2024_day6_part1(const char * input, int length) { int stride = parse_stride(input, length); int height = parse_height(input, length); @@ -196,7 +196,7 @@ static bool speculative_obstacle_causes_loop(const char * input, return false; } -int64_t day6_part2(const char * input, int length) +int64_t _2024_day6_part2(const char * input, int length) { int stride = parse_stride(input, length); int height = parse_height(input, length); diff --git a/day6/solution.h b/2024/day6/solution.h similarity index 100% rename from day6/solution.h rename to 2024/day6/solution.h diff --git a/day7/input.txt b/2024/day7/input.txt similarity index 100% rename from day7/input.txt rename to 2024/day7/input.txt diff --git a/2024/day7/input.txt.h b/2024/day7/input.txt.h new file mode 100644 index 0000000..56131bf --- /dev/null +++ b/2024/day7/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day7_input_txt_start __asm("_binary_2024_day7_input_txt_start"); +extern uint32_t _binary_2024_day7_input_txt_end __asm("_binary_2024_day7_input_txt_end"); +extern uint32_t _binary_2024_day7_input_txt_size __asm("_binary_2024_day7_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day7/sample1.txt b/2024/day7/sample1.txt similarity index 100% rename from day7/sample1.txt rename to 2024/day7/sample1.txt diff --git a/2024/day7/sample1.txt.h b/2024/day7/sample1.txt.h new file mode 100644 index 0000000..1fc2a3a --- /dev/null +++ b/2024/day7/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day7_sample1_txt_start __asm("_binary_2024_day7_sample1_txt_start"); +extern uint32_t _binary_2024_day7_sample1_txt_end __asm("_binary_2024_day7_sample1_txt_end"); +extern uint32_t _binary_2024_day7_sample1_txt_size __asm("_binary_2024_day7_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day7/solution.c b/2024/day7/solution.c similarity index 95% rename from day7/solution.c rename to 2024/day7/solution.c index e477a9c..dcb108a 100644 --- a/day7/solution.c +++ b/2024/day7/solution.c @@ -40,7 +40,7 @@ static bool evaluate_equation1(struct equation * equation, int64_t acc, int dept || evaluate_equation1(equation, acc2, depth + 1); } -int64_t day7_part1(const char * input, int length) +int64_t _2024_day7_part1(const char * input, int length) { const char * end = input + length; @@ -103,7 +103,7 @@ static bool evaluate_equation2(struct equation * equation, int64_t acc, int dept || evaluate_equation2(equation, acc3, depth + 1); } -int64_t day7_part2(const char * input, int length) +int64_t _2024_day7_part2(const char * input, int length) { const char * end = input + length; diff --git a/day8/input.txt b/2024/day8/input.txt similarity index 100% rename from day8/input.txt rename to 2024/day8/input.txt diff --git a/2024/day8/input.txt.h b/2024/day8/input.txt.h new file mode 100644 index 0000000..59facb0 --- /dev/null +++ b/2024/day8/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day8_input_txt_start __asm("_binary_2024_day8_input_txt_start"); +extern uint32_t _binary_2024_day8_input_txt_end __asm("_binary_2024_day8_input_txt_end"); +extern uint32_t _binary_2024_day8_input_txt_size __asm("_binary_2024_day8_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day8/sample1.txt b/2024/day8/sample1.txt similarity index 100% rename from day8/sample1.txt rename to 2024/day8/sample1.txt diff --git a/2024/day8/sample1.txt.h b/2024/day8/sample1.txt.h new file mode 100644 index 0000000..31ee9a5 --- /dev/null +++ b/2024/day8/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day8_sample1_txt_start __asm("_binary_2024_day8_sample1_txt_start"); +extern uint32_t _binary_2024_day8_sample1_txt_end __asm("_binary_2024_day8_sample1_txt_end"); +extern uint32_t _binary_2024_day8_sample1_txt_size __asm("_binary_2024_day8_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day8/solution.c b/2024/day8/solution.c similarity index 97% rename from day8/solution.c rename to 2024/day8/solution.c index 77dbb06..0e9f230 100644 --- a/day8/solution.c +++ b/2024/day8/solution.c @@ -117,7 +117,7 @@ void find_antinodes(int width, int height, } } -int64_t day8_part1(const char * input, int length) +int64_t _2024_day8_part1(const char * input, int length) { int stride = parse_stride(input, length); int height = parse_height(input, length); @@ -137,7 +137,7 @@ int64_t day8_part1(const char * input, int length) return array_sum_char(antinodes, width * height); } -int64_t day8_part2(const char * input, int length) +int64_t _2024_day8_part2(const char * input, int length) { int stride = parse_stride(input, length); int height = parse_height(input, length); diff --git a/day9/input.txt b/2024/day9/input.txt similarity index 100% rename from day9/input.txt rename to 2024/day9/input.txt diff --git a/2024/day9/input.txt.h b/2024/day9/input.txt.h new file mode 100644 index 0000000..6373a53 --- /dev/null +++ b/2024/day9/input.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day9_input_txt_start __asm("_binary_2024_day9_input_txt_start"); +extern uint32_t _binary_2024_day9_input_txt_end __asm("_binary_2024_day9_input_txt_end"); +extern uint32_t _binary_2024_day9_input_txt_size __asm("_binary_2024_day9_input_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day9/sample1.txt b/2024/day9/sample1.txt similarity index 100% rename from day9/sample1.txt rename to 2024/day9/sample1.txt diff --git a/2024/day9/sample1.txt.h b/2024/day9/sample1.txt.h new file mode 100644 index 0000000..ed30e12 --- /dev/null +++ b/2024/day9/sample1.txt.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_2024_day9_sample1_txt_start __asm("_binary_2024_day9_sample1_txt_start"); +extern uint32_t _binary_2024_day9_sample1_txt_end __asm("_binary_2024_day9_sample1_txt_end"); +extern uint32_t _binary_2024_day9_sample1_txt_size __asm("_binary_2024_day9_sample1_txt_size"); + +#ifdef __cplusplus +} +#endif diff --git a/day9/solution.c b/2024/day9/solution.c similarity index 97% rename from day9/solution.c rename to 2024/day9/solution.c index cb3f640..cf4edf3 100644 --- a/day9/solution.c +++ b/2024/day9/solution.c @@ -159,7 +159,7 @@ static void print_blocks(int * blocks, int length) print_char('\n'); } -int64_t day9_part1(const char * input, int length) +int64_t _2024_day9_part1(const char * input, int length) { int blocks[length * 9]; int ix = disk_map_to_blocks1(input, length, blocks); @@ -167,7 +167,7 @@ int64_t day9_part1(const char * input, int length) return calculate_checksum(blocks, ix); } -int64_t day9_part2(const char * input, int length) +int64_t _2024_day9_part2(const char * input, int length) { int blocks[length * 9]; int ix = disk_map_to_blocks2(input, length, blocks); diff --git a/Makefile b/Makefile index 9640eb2..7cfd750 100644 --- a/Makefile +++ b/Makefile @@ -12,4 +12,12 @@ CFLAGS += -I$(MAKEFILE_PATH)/dreamcast/ CFLAGS += -Wno-char-subscripts LIB ?= $(MAKEFILE_PATH)/dreamcast +libgcc/%.o: $(LIBGCC) + ar x --output $(dir $@) $(LIBGCC) $(notdir $@) + sh4-none-elf-objdump -t $@ \ + | grep -E '[.]hidden' \ + | grep -vE 'UND' \ + | cut -d' ' -f10 \ + | xargs rebind --visibility=default $@ + include aoc.mk diff --git a/aoc.mk b/aoc.mk index cde2a6c..71e36b2 100644 --- a/aoc.mk +++ b/aoc.mk @@ -19,11 +19,11 @@ DREAMCAST_OBJ = \ $(LIB)/holly/video_output.o \ $(LIB)/font/dejavusansmono/dejavusansmono.data.o \ $(LIB)/sh7091/serial.o \ - $(LIB)/maple/maple.o -# libgcc/_divdi3.o \ -# libgcc/_moddi3.o \ -# libgcc/_udiv_qrnnd_16.o \ -# libgcc/_clz.o + $(LIB)/maple/maple.o \ + libgcc/_divdi3.o \ + libgcc/_moddi3.o \ + libgcc/_udiv_qrnnd_16.o \ + libgcc/_clz.o include solutions.mk diff --git a/day1/input.txt.h b/day1/input.txt.h deleted file mode 100644 index 84489a5..0000000 --- a/day1/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day1_input_txt_start __asm("_binary_day1_input_txt_start"); -extern uint32_t _binary_day1_input_txt_end __asm("_binary_day1_input_txt_end"); -extern uint32_t _binary_day1_input_txt_size __asm("_binary_day1_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day1/sample1.txt.h b/day1/sample1.txt.h deleted file mode 100644 index 003dbe0..0000000 --- a/day1/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day1_sample1_txt_start __asm("_binary_day1_sample1_txt_start"); -extern uint32_t _binary_day1_sample1_txt_end __asm("_binary_day1_sample1_txt_end"); -extern uint32_t _binary_day1_sample1_txt_size __asm("_binary_day1_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day10/input.txt.h b/day10/input.txt.h deleted file mode 100644 index 4b2963f..0000000 --- a/day10/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day10_input_txt_start __asm("_binary_day10_input_txt_start"); -extern uint32_t _binary_day10_input_txt_end __asm("_binary_day10_input_txt_end"); -extern uint32_t _binary_day10_input_txt_size __asm("_binary_day10_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day10/sample1.txt.h b/day10/sample1.txt.h deleted file mode 100644 index 6e8e1bc..0000000 --- a/day10/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day10_sample1_txt_start __asm("_binary_day10_sample1_txt_start"); -extern uint32_t _binary_day10_sample1_txt_end __asm("_binary_day10_sample1_txt_end"); -extern uint32_t _binary_day10_sample1_txt_size __asm("_binary_day10_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day11/input.txt.h b/day11/input.txt.h deleted file mode 100644 index 122c594..0000000 --- a/day11/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day11_input_txt_start __asm("_binary_day11_input_txt_start"); -extern uint32_t _binary_day11_input_txt_end __asm("_binary_day11_input_txt_end"); -extern uint32_t _binary_day11_input_txt_size __asm("_binary_day11_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day11/sample1.txt.h b/day11/sample1.txt.h deleted file mode 100644 index eccd574..0000000 --- a/day11/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day11_sample1_txt_start __asm("_binary_day11_sample1_txt_start"); -extern uint32_t _binary_day11_sample1_txt_end __asm("_binary_day11_sample1_txt_end"); -extern uint32_t _binary_day11_sample1_txt_size __asm("_binary_day11_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day2/input.txt.h b/day2/input.txt.h deleted file mode 100644 index d949ce3..0000000 --- a/day2/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day2_input_txt_start __asm("_binary_day2_input_txt_start"); -extern uint32_t _binary_day2_input_txt_end __asm("_binary_day2_input_txt_end"); -extern uint32_t _binary_day2_input_txt_size __asm("_binary_day2_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day2/sample1.txt.h b/day2/sample1.txt.h deleted file mode 100644 index c6158b4..0000000 --- a/day2/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day2_sample1_txt_start __asm("_binary_day2_sample1_txt_start"); -extern uint32_t _binary_day2_sample1_txt_end __asm("_binary_day2_sample1_txt_end"); -extern uint32_t _binary_day2_sample1_txt_size __asm("_binary_day2_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day3/input.txt.h b/day3/input.txt.h deleted file mode 100644 index 7af9dea..0000000 --- a/day3/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day3_input_txt_start __asm("_binary_day3_input_txt_start"); -extern uint32_t _binary_day3_input_txt_end __asm("_binary_day3_input_txt_end"); -extern uint32_t _binary_day3_input_txt_size __asm("_binary_day3_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day3/sample1.txt.h b/day3/sample1.txt.h deleted file mode 100644 index 65d1abf..0000000 --- a/day3/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day3_sample1_txt_start __asm("_binary_day3_sample1_txt_start"); -extern uint32_t _binary_day3_sample1_txt_end __asm("_binary_day3_sample1_txt_end"); -extern uint32_t _binary_day3_sample1_txt_size __asm("_binary_day3_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day3/sample2.txt.h b/day3/sample2.txt.h deleted file mode 100644 index 5931e62..0000000 --- a/day3/sample2.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day3_sample2_txt_start __asm("_binary_day3_sample2_txt_start"); -extern uint32_t _binary_day3_sample2_txt_end __asm("_binary_day3_sample2_txt_end"); -extern uint32_t _binary_day3_sample2_txt_size __asm("_binary_day3_sample2_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day4/input.txt.h b/day4/input.txt.h deleted file mode 100644 index cf98b57..0000000 --- a/day4/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day4_input_txt_start __asm("_binary_day4_input_txt_start"); -extern uint32_t _binary_day4_input_txt_end __asm("_binary_day4_input_txt_end"); -extern uint32_t _binary_day4_input_txt_size __asm("_binary_day4_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day4/sample1.txt.h b/day4/sample1.txt.h deleted file mode 100644 index 103fa45..0000000 --- a/day4/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day4_sample1_txt_start __asm("_binary_day4_sample1_txt_start"); -extern uint32_t _binary_day4_sample1_txt_end __asm("_binary_day4_sample1_txt_end"); -extern uint32_t _binary_day4_sample1_txt_size __asm("_binary_day4_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day5/input.txt.h b/day5/input.txt.h deleted file mode 100644 index 6754a8b..0000000 --- a/day5/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day5_input_txt_start __asm("_binary_day5_input_txt_start"); -extern uint32_t _binary_day5_input_txt_end __asm("_binary_day5_input_txt_end"); -extern uint32_t _binary_day5_input_txt_size __asm("_binary_day5_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day5/sample1.txt.h b/day5/sample1.txt.h deleted file mode 100644 index ba9f550..0000000 --- a/day5/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day5_sample1_txt_start __asm("_binary_day5_sample1_txt_start"); -extern uint32_t _binary_day5_sample1_txt_end __asm("_binary_day5_sample1_txt_end"); -extern uint32_t _binary_day5_sample1_txt_size __asm("_binary_day5_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day6/input.txt.h b/day6/input.txt.h deleted file mode 100644 index 6340c1b..0000000 --- a/day6/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day6_input_txt_start __asm("_binary_day6_input_txt_start"); -extern uint32_t _binary_day6_input_txt_end __asm("_binary_day6_input_txt_end"); -extern uint32_t _binary_day6_input_txt_size __asm("_binary_day6_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day6/sample1.txt.h b/day6/sample1.txt.h deleted file mode 100644 index e01a8ab..0000000 --- a/day6/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day6_sample1_txt_start __asm("_binary_day6_sample1_txt_start"); -extern uint32_t _binary_day6_sample1_txt_end __asm("_binary_day6_sample1_txt_end"); -extern uint32_t _binary_day6_sample1_txt_size __asm("_binary_day6_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day7/input.txt.h b/day7/input.txt.h deleted file mode 100644 index 9c1d0e1..0000000 --- a/day7/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day7_input_txt_start __asm("_binary_day7_input_txt_start"); -extern uint32_t _binary_day7_input_txt_end __asm("_binary_day7_input_txt_end"); -extern uint32_t _binary_day7_input_txt_size __asm("_binary_day7_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day7/sample1.txt.h b/day7/sample1.txt.h deleted file mode 100644 index c79152d..0000000 --- a/day7/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day7_sample1_txt_start __asm("_binary_day7_sample1_txt_start"); -extern uint32_t _binary_day7_sample1_txt_end __asm("_binary_day7_sample1_txt_end"); -extern uint32_t _binary_day7_sample1_txt_size __asm("_binary_day7_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day8/input.txt.h b/day8/input.txt.h deleted file mode 100644 index 98b3052..0000000 --- a/day8/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day8_input_txt_start __asm("_binary_day8_input_txt_start"); -extern uint32_t _binary_day8_input_txt_end __asm("_binary_day8_input_txt_end"); -extern uint32_t _binary_day8_input_txt_size __asm("_binary_day8_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day8/sample1.txt.h b/day8/sample1.txt.h deleted file mode 100644 index 6fef83f..0000000 --- a/day8/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day8_sample1_txt_start __asm("_binary_day8_sample1_txt_start"); -extern uint32_t _binary_day8_sample1_txt_end __asm("_binary_day8_sample1_txt_end"); -extern uint32_t _binary_day8_sample1_txt_size __asm("_binary_day8_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day9/input.txt.h b/day9/input.txt.h deleted file mode 100644 index 20d6d6c..0000000 --- a/day9/input.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day9_input_txt_start __asm("_binary_day9_input_txt_start"); -extern uint32_t _binary_day9_input_txt_end __asm("_binary_day9_input_txt_end"); -extern uint32_t _binary_day9_input_txt_size __asm("_binary_day9_input_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/day9/sample1.txt.h b/day9/sample1.txt.h deleted file mode 100644 index 661acf3..0000000 --- a/day9/sample1.txt.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint32_t _binary_day9_sample1_txt_start __asm("_binary_day9_sample1_txt_start"); -extern uint32_t _binary_day9_sample1_txt_end __asm("_binary_day9_sample1_txt_end"); -extern uint32_t _binary_day9_sample1_txt_size __asm("_binary_day9_sample1_txt_size"); - -#ifdef __cplusplus -} -#endif diff --git a/gen.sh b/gen.sh index 19bd70e..3595bcd 100755 --- a/gen.sh +++ b/gen.sh @@ -2,87 +2,100 @@ set -ex -day="$1" +year="$1" +day="$2" -if [ ! -z "$day" ]; then +if [ ! -z $year && ! -z "$year/$day" ]; then re='^[0-9]+$' + if ! [[ $year =~ $re ]] ; then + echo "error: $year: not a number" >&2 + exit 1 + fi if ! [[ $day =~ $re ]] ; then echo "error: $day: not a number" >&2 exit 1 fi - mkdir -p day${day} - cat < day${day}/solution.c + mkdir -p ${year}/day${day} + cat < ${year}/day${day}/solution.c #include -int64_t day${day}_part1(const char * input, int length) +int64_t ${year}_day${day}_part1(const char * input, int length) { return -1; } -int64_t day${day}_part2(const char * input, int length) +int64_t ${year}_day${day}_part2(const char * input, int length) { return -1; } EOF - if [ ! -f day${day}/sample1.txt ]; then - touch day${day}/sample1.txt + if [ ! -f ${year}/day${day}/sample1.txt ]; then + touch ${year}/day${day}/sample1.txt fi - if [ ! -f day${day}/input.txt ]; then - touch day${day}/input.txt + if [ ! -f ${year}/day${day}/input.txt ]; then + touch ${year}/day${day}/input.txt fi fi -function gen_start_size () +function binary_header_include () { - echo "$1 { ( char *)&_binary_${2}_${3}_txt_start," >> input_dreamcast.inc - echo "$1 (uint32_t)&_binary_${2}_${3}_txt_size }," >> input_dreamcast.inc + echo "#include \"${1}/sample1.txt.h\"" >> input_dreamcast.inc + if [ -f ${i}/sample2.txt ]; then + echo "#include \"${1}/sample2.txt.h\"" >> input_dreamcast.inc + fi + echo "#include \"${1}/input.txt.h\"" >> input_dreamcast.inc } +function gen_start_size () +{ + local name=${2//\//_} + echo "$1 { ( char *)&_binary_${name}_${3}_txt_start," >> input_dreamcast.inc + echo "$1 (uint32_t)&_binary_${name}_${3}_txt_size }," >> input_dreamcast.inc +} -for i in day? day?? ; do +function sample () +{ + echo " {" >> input_dreamcast.inc + gen_start_size " " "${1}" "sample1" + if [ ! -f ${i}/sample2.txt ]; then + gen_start_size " " "${1}" "sample1" + else + gen_start_size " " "${1}" "sample2" + fi + echo " }," >> input_dreamcast.inc +} + +for i in ????/day? ????/day?? ; do make ${i}/sample1.txt.h ${i}/input.txt.h if [ -f ${i}/sample2.txt ]; then make ${i}/sample2.txt.h fi done - truncate -s0 input_dreamcast.inc -for i in day? day?? ; do - echo "#include \"${i}/sample1.txt.h\"" >> input_dreamcast.inc - if [ -f ${i}/sample2.txt ]; then - echo "#include \"${i}/sample2.txt.h\"" >> input_dreamcast.inc - fi - echo "#include \"${i}/input.txt.h\"" >> input_dreamcast.inc +for i in ????/day? ????/day?? ; do + binary_header_include ${i} done echo >> input_dreamcast.inc echo "static struct start_size sample[][2] = {" >> input_dreamcast.inc -for i in day? day?? ; do - echo " {" >> input_dreamcast.inc - gen_start_size " " "${i}" "sample1" - if [ ! -f ${i}/sample2.txt ]; then - gen_start_size " " "${i}" "sample1" - else - gen_start_size " " "${i}" "sample2" - fi - echo " }," >> input_dreamcast.inc +for i in ????/day? ????/day?? ; do + sample ${i} done echo "};" >> input_dreamcast.inc echo >> input_dreamcast.inc echo "static struct start_size input[] = {" >> input_dreamcast.inc -for i in day? day?? ; do +for i in ????/day? ????/day?? ; do gen_start_size "" "${i}" "input" done echo "};" >> input_dreamcast.inc - truncate -s0 solutions.mk echo -n "DAY_OBJ =" >> solutions.mk -for i in day? day?? ; do +for i in ????/day? ????/day?? ; do echo " \\" >> solutions.mk echo " ${i}/sample1.txt.o \\" >> solutions.mk if [ -f ${i}/sample2.txt ]; then @@ -96,26 +109,41 @@ for i in day? day?? ; do done echo >> solutions.mk -truncate -s0 runner.inc -for i in day? day?? ; do - echo "int64_t ${i}_part1(const char * input, int length);" >> runner.inc - echo "int64_t ${i}_part2(const char * input, int length);" >> runner.inc - if [ -f ${i}/render.cpp ]; then - echo "void ${i}_render(const struct font * font," >> runner.inc - echo " const struct glyph * glyphs," >> runner.inc - echo " const void * maple_ft0_data);" >> runner.inc +function part_declaration () +{ + local name=${1//\//_} + echo "int64_t _${name}_part1(const char * input, int length);" >> runner.inc + echo "int64_t _${name}_part2(const char * input, int length);" >> runner.inc + if [ -f ${1}/render.cpp ]; then + echo "void _${name}_render(const struct font * font," >> runner.inc + echo " const struct glyph * glyphs," >> runner.inc + echo " const void * maple_ft0_data);" >> runner.inc fi -done -echo >> runner.inc -echo "struct day_funcs solution[] = {" >> runner.inc -for i in day? day?? ; do +} + +function solution_array_content () +{ + local name=${1//\//_} + regex='([0-9]+)/day([0-9]+)' + [[ $1 =~ $regex ]] echo " {" >> runner.inc - echo " {${i}_part1, ${i}_part2}," >> runner.inc + echo " ${BASH_REMATCH[1]}, ${BASH_REMATCH[2]}," >> runner.inc + echo " {_${name}_part1, _${name}_part2}," >> runner.inc if [ -f ${i}/render.cpp ]; then - echo " ${i}_render," >> runner.inc + echo " _${name}_render," >> runner.inc else echo " NULL," >> runner.inc fi echo " }," >> runner.inc +} + +truncate -s0 runner.inc +for i in ????/day? ????/day?? ; do + part_declaration ${i} +done +echo >> runner.inc +echo "struct day_funcs solution[] = {" >> runner.inc +for i in ????/day? ????/day?? ; do + solution_array_content ${i} done echo "};" >> runner.inc diff --git a/input.h b/input.h index 20f3ad9..020c156 100644 --- a/input.h +++ b/input.h @@ -4,8 +4,8 @@ extern "C" { #endif -void open_input(int day, char ** buf, int * length); -void open_sample(int day, int part, char ** buf, int * length); +void open_input(int ix, char ** buf, int * length); +void open_sample(int ix, int part, char ** buf, int * length); #ifdef __cplusplus } diff --git a/input_dreamcast.c b/input_dreamcast.c index 0e7a81c..b1eb4e6 100644 --- a/input_dreamcast.c +++ b/input_dreamcast.c @@ -12,24 +12,24 @@ struct start_size { const int input_size = (sizeof (input)) / (sizeof (input[0])); -void open_input(int day, char ** buf, int * length) +void open_input(int ix, char ** buf, int * length) { - if (day < 1 || day > input_size) { + if (ix < 0 || ix >= input_size) { *buf = NULL; *length = 0; } else { - *buf = input[day - 1].start; - *length = input[day - 1].size; + *buf = input[ix].start; + *length = input[ix].size; } } -void open_sample(int day, int part, char ** buf, int * length) +void open_sample(int ix, int part, char ** buf, int * length) { - if (day < 1 || day > input_size || part < 1 || part > 2) { + if (ix < 1 || ix > input_size || part < 0 || part > 1) { *buf = NULL; *length = 0; } else { - *buf = sample[day - 1][part - 1].start; - *length = sample[day - 1][part - 1].size; + *buf = sample[ix][part].start; + *length = sample[ix][part].size; } } diff --git a/input_dreamcast.inc b/input_dreamcast.inc index 8cd0f57..339bfbd 100644 --- a/input_dreamcast.inc +++ b/input_dreamcast.inc @@ -1,117 +1,128 @@ -#include "day1/sample1.txt.h" -#include "day1/input.txt.h" -#include "day2/sample1.txt.h" -#include "day2/input.txt.h" -#include "day3/sample1.txt.h" -#include "day3/sample2.txt.h" -#include "day3/input.txt.h" -#include "day4/sample1.txt.h" -#include "day4/input.txt.h" -#include "day5/sample1.txt.h" -#include "day5/input.txt.h" -#include "day6/sample1.txt.h" -#include "day6/input.txt.h" -#include "day7/sample1.txt.h" -#include "day7/input.txt.h" -#include "day8/sample1.txt.h" -#include "day8/input.txt.h" -#include "day9/sample1.txt.h" -#include "day9/input.txt.h" -#include "day10/sample1.txt.h" -#include "day10/input.txt.h" -#include "day11/sample1.txt.h" -#include "day11/input.txt.h" +#include "2023/day1/sample1.txt.h" +#include "2023/day1/sample2.txt.h" +#include "2023/day1/input.txt.h" +#include "2024/day1/sample1.txt.h" +#include "2024/day1/input.txt.h" +#include "2024/day2/sample1.txt.h" +#include "2024/day2/input.txt.h" +#include "2024/day3/sample1.txt.h" +#include "2024/day3/sample2.txt.h" +#include "2024/day3/input.txt.h" +#include "2024/day4/sample1.txt.h" +#include "2024/day4/input.txt.h" +#include "2024/day5/sample1.txt.h" +#include "2024/day5/input.txt.h" +#include "2024/day6/sample1.txt.h" +#include "2024/day6/input.txt.h" +#include "2024/day7/sample1.txt.h" +#include "2024/day7/input.txt.h" +#include "2024/day8/sample1.txt.h" +#include "2024/day8/input.txt.h" +#include "2024/day9/sample1.txt.h" +#include "2024/day9/input.txt.h" +#include "2024/day10/sample1.txt.h" +#include "2024/day10/input.txt.h" +#include "2024/day11/sample1.txt.h" +#include "2024/day11/input.txt.h" static struct start_size sample[][2] = { { - { ( char *)&_binary_day1_sample1_txt_start, - (uint32_t)&_binary_day1_sample1_txt_size }, - { ( char *)&_binary_day1_sample1_txt_start, - (uint32_t)&_binary_day1_sample1_txt_size }, + { ( char *)&_binary_2023_day1_sample1_txt_start, + (uint32_t)&_binary_2023_day1_sample1_txt_size }, + { ( char *)&_binary_2023_day1_sample2_txt_start, + (uint32_t)&_binary_2023_day1_sample2_txt_size }, }, { - { ( char *)&_binary_day2_sample1_txt_start, - (uint32_t)&_binary_day2_sample1_txt_size }, - { ( char *)&_binary_day2_sample1_txt_start, - (uint32_t)&_binary_day2_sample1_txt_size }, + { ( char *)&_binary_2024_day1_sample1_txt_start, + (uint32_t)&_binary_2024_day1_sample1_txt_size }, + { ( char *)&_binary_2024_day1_sample1_txt_start, + (uint32_t)&_binary_2024_day1_sample1_txt_size }, }, { - { ( char *)&_binary_day3_sample1_txt_start, - (uint32_t)&_binary_day3_sample1_txt_size }, - { ( char *)&_binary_day3_sample2_txt_start, - (uint32_t)&_binary_day3_sample2_txt_size }, + { ( char *)&_binary_2024_day2_sample1_txt_start, + (uint32_t)&_binary_2024_day2_sample1_txt_size }, + { ( char *)&_binary_2024_day2_sample1_txt_start, + (uint32_t)&_binary_2024_day2_sample1_txt_size }, }, { - { ( char *)&_binary_day4_sample1_txt_start, - (uint32_t)&_binary_day4_sample1_txt_size }, - { ( char *)&_binary_day4_sample1_txt_start, - (uint32_t)&_binary_day4_sample1_txt_size }, + { ( char *)&_binary_2024_day3_sample1_txt_start, + (uint32_t)&_binary_2024_day3_sample1_txt_size }, + { ( char *)&_binary_2024_day3_sample2_txt_start, + (uint32_t)&_binary_2024_day3_sample2_txt_size }, }, { - { ( char *)&_binary_day5_sample1_txt_start, - (uint32_t)&_binary_day5_sample1_txt_size }, - { ( char *)&_binary_day5_sample1_txt_start, - (uint32_t)&_binary_day5_sample1_txt_size }, + { ( char *)&_binary_2024_day4_sample1_txt_start, + (uint32_t)&_binary_2024_day4_sample1_txt_size }, + { ( char *)&_binary_2024_day4_sample1_txt_start, + (uint32_t)&_binary_2024_day4_sample1_txt_size }, }, { - { ( char *)&_binary_day6_sample1_txt_start, - (uint32_t)&_binary_day6_sample1_txt_size }, - { ( char *)&_binary_day6_sample1_txt_start, - (uint32_t)&_binary_day6_sample1_txt_size }, + { ( char *)&_binary_2024_day5_sample1_txt_start, + (uint32_t)&_binary_2024_day5_sample1_txt_size }, + { ( char *)&_binary_2024_day5_sample1_txt_start, + (uint32_t)&_binary_2024_day5_sample1_txt_size }, }, { - { ( char *)&_binary_day7_sample1_txt_start, - (uint32_t)&_binary_day7_sample1_txt_size }, - { ( char *)&_binary_day7_sample1_txt_start, - (uint32_t)&_binary_day7_sample1_txt_size }, + { ( char *)&_binary_2024_day6_sample1_txt_start, + (uint32_t)&_binary_2024_day6_sample1_txt_size }, + { ( char *)&_binary_2024_day6_sample1_txt_start, + (uint32_t)&_binary_2024_day6_sample1_txt_size }, }, { - { ( char *)&_binary_day8_sample1_txt_start, - (uint32_t)&_binary_day8_sample1_txt_size }, - { ( char *)&_binary_day8_sample1_txt_start, - (uint32_t)&_binary_day8_sample1_txt_size }, + { ( char *)&_binary_2024_day7_sample1_txt_start, + (uint32_t)&_binary_2024_day7_sample1_txt_size }, + { ( char *)&_binary_2024_day7_sample1_txt_start, + (uint32_t)&_binary_2024_day7_sample1_txt_size }, }, { - { ( char *)&_binary_day9_sample1_txt_start, - (uint32_t)&_binary_day9_sample1_txt_size }, - { ( char *)&_binary_day9_sample1_txt_start, - (uint32_t)&_binary_day9_sample1_txt_size }, + { ( char *)&_binary_2024_day8_sample1_txt_start, + (uint32_t)&_binary_2024_day8_sample1_txt_size }, + { ( char *)&_binary_2024_day8_sample1_txt_start, + (uint32_t)&_binary_2024_day8_sample1_txt_size }, }, { - { ( char *)&_binary_day10_sample1_txt_start, - (uint32_t)&_binary_day10_sample1_txt_size }, - { ( char *)&_binary_day10_sample1_txt_start, - (uint32_t)&_binary_day10_sample1_txt_size }, + { ( char *)&_binary_2024_day9_sample1_txt_start, + (uint32_t)&_binary_2024_day9_sample1_txt_size }, + { ( char *)&_binary_2024_day9_sample1_txt_start, + (uint32_t)&_binary_2024_day9_sample1_txt_size }, }, { - { ( char *)&_binary_day11_sample1_txt_start, - (uint32_t)&_binary_day11_sample1_txt_size }, - { ( char *)&_binary_day11_sample1_txt_start, - (uint32_t)&_binary_day11_sample1_txt_size }, + { ( char *)&_binary_2024_day10_sample1_txt_start, + (uint32_t)&_binary_2024_day10_sample1_txt_size }, + { ( char *)&_binary_2024_day10_sample1_txt_start, + (uint32_t)&_binary_2024_day10_sample1_txt_size }, + }, + { + { ( char *)&_binary_2024_day11_sample1_txt_start, + (uint32_t)&_binary_2024_day11_sample1_txt_size }, + { ( char *)&_binary_2024_day11_sample1_txt_start, + (uint32_t)&_binary_2024_day11_sample1_txt_size }, }, }; static struct start_size input[] = { - { ( char *)&_binary_day1_input_txt_start, - (uint32_t)&_binary_day1_input_txt_size }, - { ( char *)&_binary_day2_input_txt_start, - (uint32_t)&_binary_day2_input_txt_size }, - { ( char *)&_binary_day3_input_txt_start, - (uint32_t)&_binary_day3_input_txt_size }, - { ( char *)&_binary_day4_input_txt_start, - (uint32_t)&_binary_day4_input_txt_size }, - { ( char *)&_binary_day5_input_txt_start, - (uint32_t)&_binary_day5_input_txt_size }, - { ( char *)&_binary_day6_input_txt_start, - (uint32_t)&_binary_day6_input_txt_size }, - { ( char *)&_binary_day7_input_txt_start, - (uint32_t)&_binary_day7_input_txt_size }, - { ( char *)&_binary_day8_input_txt_start, - (uint32_t)&_binary_day8_input_txt_size }, - { ( char *)&_binary_day9_input_txt_start, - (uint32_t)&_binary_day9_input_txt_size }, - { ( char *)&_binary_day10_input_txt_start, - (uint32_t)&_binary_day10_input_txt_size }, - { ( char *)&_binary_day11_input_txt_start, - (uint32_t)&_binary_day11_input_txt_size }, + { ( char *)&_binary_2023_day1_input_txt_start, + (uint32_t)&_binary_2023_day1_input_txt_size }, + { ( char *)&_binary_2024_day1_input_txt_start, + (uint32_t)&_binary_2024_day1_input_txt_size }, + { ( char *)&_binary_2024_day2_input_txt_start, + (uint32_t)&_binary_2024_day2_input_txt_size }, + { ( char *)&_binary_2024_day3_input_txt_start, + (uint32_t)&_binary_2024_day3_input_txt_size }, + { ( char *)&_binary_2024_day4_input_txt_start, + (uint32_t)&_binary_2024_day4_input_txt_size }, + { ( char *)&_binary_2024_day5_input_txt_start, + (uint32_t)&_binary_2024_day5_input_txt_size }, + { ( char *)&_binary_2024_day6_input_txt_start, + (uint32_t)&_binary_2024_day6_input_txt_size }, + { ( char *)&_binary_2024_day7_input_txt_start, + (uint32_t)&_binary_2024_day7_input_txt_size }, + { ( char *)&_binary_2024_day8_input_txt_start, + (uint32_t)&_binary_2024_day8_input_txt_size }, + { ( char *)&_binary_2024_day9_input_txt_start, + (uint32_t)&_binary_2024_day9_input_txt_size }, + { ( char *)&_binary_2024_day10_input_txt_start, + (uint32_t)&_binary_2024_day10_input_txt_size }, + { ( char *)&_binary_2024_day11_input_txt_start, + (uint32_t)&_binary_2024_day11_input_txt_size }, }; diff --git a/runner.c b/runner.c index 986c790..6a22cc6 100644 --- a/runner.c +++ b/runner.c @@ -12,6 +12,8 @@ typedef void (* render_func)(const struct font * font, const void * maple_ft0_data); struct day_funcs { + int year; + int day; part_func part[2]; render_func render; }; @@ -23,6 +25,7 @@ const int solution_ticks = solution_days * 2; bool runner_tick(struct runner_state * runner_state) { int tick = (solution_ticks - 1) - runner_state->tick; + //int tick = runner_state->tick; if (tick < 0) { runner_state->want_render = false; @@ -30,20 +33,19 @@ bool runner_tick(struct runner_state * runner_state) } int part = tick % 2; - int day = tick / 2; + int ix = tick / 2; + int year = solution[ix].year; + int day = solution[ix].day; - if (day < 10) - return true; - - runner_state->want_render = solution[day].render != NULL; + runner_state->want_render = solution[ix].render != NULL; char * buf; int length; - //open_sample(day + 1, part + 1, &buf, &length); - open_input(day + 1, &buf, &length); + open_sample(ix, part, &buf, &length); + //open_input(ix, &buf, &length); int64_t answer = solution[day].part[part](buf, length); - printf("day %d part %d: %l\n", day + 1, part + 1, answer); + printf("%d day %d part %d: %l\n", year, day, part + 1, answer); runner_state->tick += 1; diff --git a/runner.inc b/runner.inc index eafb2b2..da3ce10 100644 --- a/runner.inc +++ b/runner.inc @@ -1,72 +1,90 @@ -int64_t day1_part1(const char * input, int length); -int64_t day1_part2(const char * input, int length); -int64_t day2_part1(const char * input, int length); -int64_t day2_part2(const char * input, int length); -int64_t day3_part1(const char * input, int length); -int64_t day3_part2(const char * input, int length); -int64_t day4_part1(const char * input, int length); -int64_t day4_part2(const char * input, int length); -int64_t day5_part1(const char * input, int length); -int64_t day5_part2(const char * input, int length); -int64_t day6_part1(const char * input, int length); -int64_t day6_part2(const char * input, int length); -void day6_render(const struct font * font, - const struct glyph * glyphs, - const void * maple_ft0_data); -int64_t day7_part1(const char * input, int length); -int64_t day7_part2(const char * input, int length); -int64_t day8_part1(const char * input, int length); -int64_t day8_part2(const char * input, int length); -int64_t day9_part1(const char * input, int length); -int64_t day9_part2(const char * input, int length); -int64_t day10_part1(const char * input, int length); -int64_t day10_part2(const char * input, int length); -int64_t day11_part1(const char * input, int length); -int64_t day11_part2(const char * input, int length); +int64_t _2023_day1_part1(const char * input, int length); +int64_t _2023_day1_part2(const char * input, int length); +int64_t _2024_day1_part1(const char * input, int length); +int64_t _2024_day1_part2(const char * input, int length); +int64_t _2024_day2_part1(const char * input, int length); +int64_t _2024_day2_part2(const char * input, int length); +int64_t _2024_day3_part1(const char * input, int length); +int64_t _2024_day3_part2(const char * input, int length); +int64_t _2024_day4_part1(const char * input, int length); +int64_t _2024_day4_part2(const char * input, int length); +int64_t _2024_day5_part1(const char * input, int length); +int64_t _2024_day5_part2(const char * input, int length); +int64_t _2024_day6_part1(const char * input, int length); +int64_t _2024_day6_part2(const char * input, int length); +void _2024_day6_render(const struct font * font, + const struct glyph * glyphs, + const void * maple_ft0_data); +int64_t _2024_day7_part1(const char * input, int length); +int64_t _2024_day7_part2(const char * input, int length); +int64_t _2024_day8_part1(const char * input, int length); +int64_t _2024_day8_part2(const char * input, int length); +int64_t _2024_day9_part1(const char * input, int length); +int64_t _2024_day9_part2(const char * input, int length); +int64_t _2024_day10_part1(const char * input, int length); +int64_t _2024_day10_part2(const char * input, int length); +int64_t _2024_day11_part1(const char * input, int length); +int64_t _2024_day11_part2(const char * input, int length); struct day_funcs solution[] = { { - {day1_part1, day1_part2}, + 2023, 1, + {_2023_day1_part1, _2023_day1_part2}, NULL, }, { - {day2_part1, day2_part2}, + 2024, 1, + {_2024_day1_part1, _2024_day1_part2}, NULL, }, { - {day3_part1, day3_part2}, + 2024, 2, + {_2024_day2_part1, _2024_day2_part2}, NULL, }, { - {day4_part1, day4_part2}, + 2024, 3, + {_2024_day3_part1, _2024_day3_part2}, NULL, }, { - {day5_part1, day5_part2}, + 2024, 4, + {_2024_day4_part1, _2024_day4_part2}, NULL, }, { - {day6_part1, day6_part2}, - day6_render, - }, - { - {day7_part1, day7_part2}, + 2024, 5, + {_2024_day5_part1, _2024_day5_part2}, NULL, }, { - {day8_part1, day8_part2}, + 2024, 6, + {_2024_day6_part1, _2024_day6_part2}, + _2024_day6_render, + }, + { + 2024, 7, + {_2024_day7_part1, _2024_day7_part2}, NULL, }, { - {day9_part1, day9_part2}, + 2024, 8, + {_2024_day8_part1, _2024_day8_part2}, NULL, }, { - {day10_part1, day10_part2}, + 2024, 9, + {_2024_day9_part1, _2024_day9_part2}, NULL, }, { - {day11_part1, day11_part2}, + 2024, 10, + {_2024_day10_part1, _2024_day10_part2}, + NULL, + }, + { + 2024, 11, + {_2024_day11_part1, _2024_day11_part2}, NULL, }, }; diff --git a/solutions.mk b/solutions.mk index 859b6a3..784196f 100644 --- a/solutions.mk +++ b/solutions.mk @@ -1,36 +1,40 @@ DAY_OBJ = \ - day1/sample1.txt.o \ - day1/input.txt.o \ - day1/solution.o \ - day2/sample1.txt.o \ - day2/input.txt.o \ - day2/solution.o \ - day3/sample1.txt.o \ - day3/sample2.txt.o \ - day3/input.txt.o \ - day3/solution.o \ - day4/sample1.txt.o \ - day4/input.txt.o \ - day4/solution.o \ - day5/sample1.txt.o \ - day5/input.txt.o \ - day5/solution.o \ - day6/sample1.txt.o \ - day6/input.txt.o \ - day6/render.o \ - day6/solution.o \ - day7/sample1.txt.o \ - day7/input.txt.o \ - day7/solution.o \ - day8/sample1.txt.o \ - day8/input.txt.o \ - day8/solution.o \ - day9/sample1.txt.o \ - day9/input.txt.o \ - day9/solution.o \ - day10/sample1.txt.o \ - day10/input.txt.o \ - day10/solution.o \ - day11/sample1.txt.o \ - day11/input.txt.o \ - day11/solution.o + 2023/day1/sample1.txt.o \ + 2023/day1/sample2.txt.o \ + 2023/day1/input.txt.o \ + 2023/day1/solution.o \ + 2024/day1/sample1.txt.o \ + 2024/day1/input.txt.o \ + 2024/day1/solution.o \ + 2024/day2/sample1.txt.o \ + 2024/day2/input.txt.o \ + 2024/day2/solution.o \ + 2024/day3/sample1.txt.o \ + 2024/day3/sample2.txt.o \ + 2024/day3/input.txt.o \ + 2024/day3/solution.o \ + 2024/day4/sample1.txt.o \ + 2024/day4/input.txt.o \ + 2024/day4/solution.o \ + 2024/day5/sample1.txt.o \ + 2024/day5/input.txt.o \ + 2024/day5/solution.o \ + 2024/day6/sample1.txt.o \ + 2024/day6/input.txt.o \ + 2024/day6/render.o \ + 2024/day6/solution.o \ + 2024/day7/sample1.txt.o \ + 2024/day7/input.txt.o \ + 2024/day7/solution.o \ + 2024/day8/sample1.txt.o \ + 2024/day8/input.txt.o \ + 2024/day8/solution.o \ + 2024/day9/sample1.txt.o \ + 2024/day9/input.txt.o \ + 2024/day9/solution.o \ + 2024/day10/sample1.txt.o \ + 2024/day10/input.txt.o \ + 2024/day10/solution.o \ + 2024/day11/sample1.txt.o \ + 2024/day11/input.txt.o \ + 2024/day11/solution.o