aocc22

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

common.h (684B)


      1 #ifndef COMMON_H_
      2 #define COMMON_H_
      3 
      4 #include <assert.h>
      5 #include <reading.h>
      6 #include <stdint.h>
      7 #include <stdio.h>
      8 #include <sys/queue.h>
      9 
     10 struct entry {
     11   size_t index;
     12   SIMPLEQ_ENTRY(entry) entries;
     13 };
     14 
     15 typedef struct {
     16   size_t n;
     17   uint64_t *mod;
     18   uint64_t *rmod;
     19   size_t *fnext;
     20   size_t *tnext;
     21 
     22   uint64_t *inspections;
     23 
     24   size_t nitems;
     25   uint64_t *items;
     26 
     27   SIMPLEQ_HEAD(listhead, entry) * heads;
     28 
     29   uint64_t (*operate)(uint64_t, size_t);
     30 } monkis;
     31 
     32 void print_monkis(monkis m);
     33 monkis parse_monkis(char **lines, size_t nlines, int mods);
     34 void mmonkey(monkis m, size_t i);
     35 void mround(monkis m);
     36 uint64_t get_result(monkis m);
     37 void let_the_monkis_out(monkis m);
     38 
     39 #endif