aocc22

Advent of Code 2022
git clone git://www.tkruger.se/aocc22.git
Log | Files | Refs | README

bbrute.c (617B)


      1 #include "common.h"
      2 
      3 int main(int argc, char **argv) {
      4   char **lines;
      5   size_t nlines = readlines(&lines, "input");
      6   printf("#lines: %lu\n", nlines);
      7 
      8   monki *m = parse(lines, nlines);
      9 
     10   int64_t brute = 1;
     11   int64_t v1 = 1, v2 = 0;
     12   m[monkindex("humn")].op = '\0';
     13   do {
     14     m[monkindex("humn")].v = brute;
     15     v1 = mcompute(monkindex("zhfp"), m);
     16     v2 = mcompute(monkindex("hghd"), m);
     17     if (brute > 0) {
     18       if (brute % 10000000 == 0)
     19         printf("> %lld\n", brute);
     20       brute = -brute;
     21     } else {
     22       brute = (-brute) + 1;
     23     }
     24   } while (v1 != v2);
     25 
     26   printf("%lld\n", brute);
     27 
     28   free(m);
     29 }