aocc23

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

common.h (638B)


      1 #ifndef COMMON_H_
      2 #define COMMON_H_
      3 
      4 #include <assert.h>
      5 #include <stdint.h>
      6 #include <stdio.h>
      7 #include <stdlib.h>
      8 
      9 #include <reading.h>
     10 #include <stack_u64.h>
     11 
     12 typedef struct interval {
     13   uint64_t lb;
     14   uint64_t ub;
     15 } iv_t;
     16 
     17 typedef struct brick {
     18   iv_t ivs[3];
     19 } brick_t;
     20 
     21 void read_bricks(brick_t *bricks, char **lines, const size_t nlines);
     22 void sort_bricks(brick_t *bricks, const size_t n);
     23 void gravitize(brick_t *a);
     24 int may_gravitize(const brick_t *a, const brick_t *landed,
     25                   const size_t nlanded);
     26 void gravitize_all(brick_t *bricks, const size_t n);
     27 int brick_nei(const brick_t *a, const brick_t *b);
     28 
     29 #endif